Формат даты с UTC - PullRequest
       57

Формат даты с UTC

0 голосов
/ 18 июня 2020

Мне нужно выбрать значение 2019-03-25 из столбца даты таблицы, но в следующем формате:

2019-03-25T00:00:00.000+02:00

Добрый день, могу я его получить?

Oracle 10г

Спасибо!

Ответы [ 3 ]

0 голосов
/ 18 июня 2020

Вы можете CAST свой DATE в TIMESTAMP, а затем использовать FROM_TZ, чтобы установить часовой пояс, а затем отформатировать его в соответствии с вашими требованиями, используя TO_CHAR:

SELECT TO_CHAR(
         FROM_TZ( CAST( your_date AS TIMESTAMP ), '+02:00' ),
        'YYYY-MM-DD"T"HH24:MI:SS.FF3TZH:TZM'
       ) AS formatted_date
FROM   your_table;

Который , для ваших данных примера:

CREATE TABLE your_table ( your_date ) AS
SELECT DATE '2019-03-25' FROM DUAL

Вывод:

| FORMATTED_DATE                |
| :---------------------------- |
| 2019-03-25T00:00:00.000+02:00 |

db <> fiddle здесь

0 голосов
/ 19 июня 2020

Мы не можем хранить информацию о часовом поясе в db, поэтому мы можем просто использовать следующий формат,

select to_char(sysdate,'YYYY-MM-DD')||'T'||to_char(sysdate,'HH24:MI:SS') from dual
0 голосов
/ 18 июня 2020

Тип данных date не хранит информацию о миллисекундах и часовом поясе, поэтому я отвечу на ваш вопрос о том, как отформатировать date в целевую форму с фиксированными значениями для миллисекунд и часового пояса.

Если да , вы можете использовать to_char() так:

to_char(mycol, 'yyyy-mm-dd"T"hh24:mi:ss".000+2:00"')
...