Форматирование дат Postgresql с часовым поясом - PullRequest
0 голосов
/ 01 февраля 2010

Как вывести даты postgresql с ISO 8601 -совместимыми часовыми поясами?

например. У меня есть значение

2006-11-10 07:35:30+01

и мне нужно это в этом формате:

2006-11-10T07:35+01

Я мог бы сделать это достаточно легко с помощью манипуляции со строками, но стандартные функции форматирования даты для

to_char(<my date>, 'YYYY-MM-DDThh:mmTD')

дал бы мне это:

2006-11-10T07:11CET

вместо этого:

2006-11-10T07:11+02

Есть ли способ получить тимзон как смещение, а не как сокращение?

Ответы [ 2 ]

0 голосов
/ 09 октября 2013

Возможно, уже слишком поздно, но есть альтернатива:

to_char(now(), 'YYYY-MM-DDThh:mi')::timestamp with time zone::text

Примечание: Я заменил mm на mi в вышеприведенном выражении, так как считаю, что минутыожидаются вместо месяцев после часа.

0 голосов
/ 01 февраля 2010

Может быть, используя манипуляции со строками? Как:

regexp_replace(current_date || 'T' || current_time, E':[^:]*?\\+', E'+');

или

replace( regexp_replace(now()::text, E':[^:]*?\\+', E'+'), ' ', 'T' );

Не элегантно, но выполняет свою работу (протестировано с 8.3)

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