Postgresql to_char добавить символы на сегодняшний день - PullRequest
0 голосов
/ 04 ноября 2018

Я хочу выбрать даты в этом формате: 2018-11-25T16: 00: 00Z

Итак, я попытался сделать это:

select to_char(registration_date, 'YYYY-MM-DDTHH24:MI:SSZ')
from ...

но его вывод:

2018-11-01STH24:17:35Z 

Символ 'T' изменяет вывод даты вместо того, чтобы просто печатать ее в середине Я попытался добавить пробел рядом с символом 'T' следующим образом:

выберите to_char (дата регистрации, 'ГГГГ-ММ-ДДТ HH24: MI: SSZ')

и это работает, но мне нужна дата без пробелов.

Как добавить символ 'T' к середине даты, и результат будет таким же, как в первом примере?

1 Ответ

0 голосов
/ 04 ноября 2018

Да, это действительно интересно. Я мог бы воспроизвести это:

SELECT to_char('2018-11-01 15:21:24'::timestamp, 'YYYY-MM-DDTHH24:MI:SSZ')

дает

2018-11-01STH24:21:24Z  -- note the S

А

SELECT to_char('2018-11-04 15:21:24'::timestamp, 'YYYY-MM-DDTHH24:MI:SSZ')

т

2018-11-04THH24:21:24Z -- note that THH still seems to remain as in the format string

Проблема здесь заключается в значении формата TH. Эта строка интерпретируется как «суффикс порядкового номера». Он добавляет суффиксы «ST», «ND», «RD» и «TH» для «первого», «второго», «третьего», «четвертого» и других. В вашей строке формата это сочетается с вашим T и строкой формата HH24.

См:

SELECT to_char('2018-11-01 15:21:24'::timestamp, 'YYYY-MM-DDTH')

дает

2018-11-01ST 

и

SELECT to_char('2018-11-04 15:21:24'::timestamp, 'YYYY-MM-DDTH')

дает

2018-11-04TH

Так что на самом деле ваши примеры выше могут быть объяснены. S на самом деле является ST, H24 - это не интерпретируемый остаток THH24 (где TH уже взят за порядковый суффикс). То же самое со вторым примером, где TH снова преобразуется в TH, поэтому он, кажется, игнорируется.


Ваше решение заключает T в двойные кавычки:

SELECT to_char('2018-11-01 15:21:24'::timestamp, 'YYYY-MM-DD"T"HH24:MI:SSZ')

, что дает:

2018-11-01T15:21:24Z

демо: дб <> скрипка

форматирование даты Postgres

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...