Мне нужна дата (запись {datecreated}) из сохраненного поиска, чтобы иметь смещение часового пояса (например, -0500).
Итак, до сих пор я находил шаблон даты, который можно использовать, вот такой: YYYY-MM-DD"T"HH24:MI:SS.FFTZH:TZM
Итак, я проверил это TO_CHAR(TO_TIMESTAMP_TZ({datecreated}, 'YYYY-MM-DD"T"HH24:MI:SSTZH:TZM'), 'YYYY-MM-DD"T"HH24:MI:SSTZH:TZM')
, но возвращенные часы неверны (например, 2023-03-31T00:00:00-04:00). Итак, я попытался TO_CHAR({datecreated}, 'YYYY-MM-DD"T"HH24:MI:SSTZH:TZM')
, но это возвращает ERROR: Invalid Expression
. Я обнаружил, что только так я могу получить правильное время TO_CHAR({datecreated}, 'YYYY-MM-DD"T"HH24:MI:SS')
, но смещение не указано.
Итак, мой вопрос: есть ли у NetSuite собственный способ получить правильное время со смещением часового пояса или единственный способ - объединить дату из разных методов? спасибо
Проблема в том, что TO_TIMESTAMP_TZ
всегда возвращается 00:00:00
как время, но я ожидаю, например. 12:23:00, 14:34:00 и т. д. Результаты даты в NS основаны на предпочтениях пользователя. В моем случае это "EDT", так что теперь это -04:00
. НО в базе данных NS система сохраняет точное время события. Вы можете протестировать этот TO_CHAR({datecreated}, 'YYYY-MM-DD"T"HH24:MI:SS') и изменить свой часовой пояс в Home>Set Preferences, чтобы увидеть изменение часов в зависимости от зоны. Я знаю, что в скриптах new Date().toString()
возвращает PDT... даже если сервер находится недалеко от Нью-Йорка ;)...
После многих часов проб и ошибок я обнаружил, что в NetSuite есть переменная SESSIONTIMEZONE
, а также метод TZ_OFFSET
. Поэтому я объединил данные из двух методов, чтобы иметь «полезную» временную метку.
TO_CHAR({datecreated}, 'YYYY-MM-DD"T"HH24:MI:SS') || TZ_OFFSET(SESSIONTIMEZONE)
Он вернет точную дату и время со смещением часового пояса. например.2023-03-31T13:02:07-04:00
.
PS. SESSIONTIMEZONE
возвращаемые значения основаны на предпочтениях пользователя.
"Я протестировал этот TO_CHAR(TO_TIMESTAMP_TZ({datecreated}, 'ГГГГ-ММ-ДД"T"ЧЧ24:MI:SSTZH:TZM'), 'ГГГГ-ММ-ДД"T"HH24:MI:SSTZH:TZM'), но возвращенные часы неверны (например, 2023-03-31T00:00:00-04:00)" - какой результат вы ожидаете? Можно ли это объяснить разницей во времени между тем, где вы находитесь, и тем, где находится сервер NetSuite (PDT)?