|
Смещение часового пояса в секундах
|
|||
---|---|---|---|
#18+
Мне нужно получить unix timestamp с учетом выставленного в сессии часового пояса. Получаю так: (sysdate - DATE'1970-01-01') * 86400 - extract(timezone_hour from systimestamp)*3600+extract(timezone_minute from systimestamp)*60 А можно сразу получить смещение в секундах? tz_offset возвращает строку. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2021, 13:41 |
|
Смещение часового пояса в секундах
|
|||
---|---|---|---|
#18+
А не проще sysdate сразу перегнать в UTC чтобы вычитать ничего не пришлось?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2021, 13:45 |
|
Смещение часового пояса в секундах
|
|||
---|---|---|---|
#18+
sysdate это ведь DATETIME, там нет информации о часовом поясе. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2021, 13:56 |
|
Смещение часового пояса в секундах
|
|||
---|---|---|---|
#18+
Так найди функцию в которой она есть. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2021, 14:12 |
|
Смещение часового пояса в секундах
|
|||
---|---|---|---|
#18+
В systimestamp есть. Но timestamp не приводится к числовым значениям, я не могу вычесть с него DATE'1970-01-01'. А если вычитать литеральный timestamp, то в нем нужно задать часовой пояс, то есть нужно использовать сложные выражения. Или что имелось ввиду? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2021, 14:18 |
|
Смещение часового пояса в секундах
|
|||
---|---|---|---|
#18+
Alibek B. А если вычитать литеральный timestamp Код: plsql 1. 2. 3. 4. 5.
..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2021, 14:32 |
|
Смещение часового пояса в секундах
|
|||
---|---|---|---|
#18+
Alibek B. Мне нужно получить unix timestamp с учетом выставленного в сессии часового пояса. Ни один из вариантов, предложенных выше, не учитывает часовой пояс СЕССИИ. RTFM sysdate, systimestamp, current_time ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2021, 14:57 |
|
Смещение часового пояса в секундах
|
|||
---|---|---|---|
#18+
Не пойму, как использовать systimestamp напрямую. Если вычесть из него литерал даты 1970-01-01, то результатом будет timestamp и с ним арифметические операции напрямую недопустимы, все равно нужны громоздкие выражения, чтобы получить число секунд в виде целого. tz_offset(sessiontimezone) возвращает смещение в виде строки, его так же нельзя вычитать напрямую. to_char(<datetime>, 'sssss') (количество секунд с полуночи) не работает с timestamp. Наверное можно использовать interval, но не получилось. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2021, 15:47 |
|
Смещение часового пояса в секундах
|
|||
---|---|---|---|
#18+
Alibek B.Если вычесть из него литерал даты 1970-01-01, то результатом будет timestamp Нет, не будет. Это будет interval, а для него есть пара забавных функций. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2021, 15:53 |
|
Смещение часового пояса в секундах
|
|||
---|---|---|---|
#18+
PuM256 Alibek B. Мне нужно получить unix timestamp с учетом выставленного в сессии часового пояса. Ни один из вариантов, предложенных выше, не учитывает часовой пояс СЕССИИ. RTFM sysdate, systimestamp, current_time Опечатка: current_timestamp ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2021, 16:20 |
|
Смещение часового пояса в секундах
|
|||
---|---|---|---|
#18+
Stax Alibek B. А если вычитать литеральный timestamp Код: plsql 1. 2. 3. 4. 5.
..... stax Stax, DATE'1970-01-01' не есть литеральный timestamp. SYSTIMESTAMP выдает timestamp относительно dbtimezone а UNIX time это UTC, посему: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2021, 17:01 |
|
Смещение часового пояса в секундах
|
|||
---|---|---|---|
#18+
SY, я отвечал на "его (литерал даты 1970-01-01,) так же нельзя вычитать напрямую ." ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2021, 17:34 |
|
Смещение часового пояса в секундах
|
|||
---|---|---|---|
#18+
cast as date? Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2021, 19:29 |
|
Смещение часового пояса в секундах
|
|||
---|---|---|---|
#18+
Перечитал вопрос, а для учёта зоны в текущей сессии будет проще: Код: plsql 1.
... хотя unix time это же всегда UTC, поэтому правильнее предыдущий вариант, т.е.: а) получаем текущее время в UTC б) смотрим разницу в секундах от "нулевой" даты ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2021, 19:36 |
|
Смещение часового пояса в секундах
|
|||
---|---|---|---|
#18+
Спасибо, понял. Но по-моему это ничуть не проще, чем -(extract()*3600+extract()*60). ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2021, 19:46 |
|
Смещение часового пояса в секундах
|
|||
---|---|---|---|
#18+
Alibek B. Спасибо, понял. Но по-моему это ничуть не проще, чем -(extract()*3600+extract()*60). Проще: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Проверяем: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2021, 22:02 |
|
|
start [/forum/topic.php?fid=52&msg=40064720&tid=1880258]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
33ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 135ms |
0 / 0 |