如何使用符合ISO 8601标准的时区输出postgresql日期?
e.g。我有值
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
有没有办法将timzone作为偏移而不是缩写?
答案 0 :(得分:0)
使用字符串操作,也许?像:
regexp_replace(current_date || 'T' || current_time, E':[^:]*?\\+', E'+');
或
replace( regexp_replace(now()::text, E':[^:]*?\\+', E'+'), ' ', 'T' );
不优雅,但它完成了工作(用8.3测试)
答案 1 :(得分:0)
也许为时已晚,但这是另一种选择:
to_char(now(), 'YYYY-MM-DDThh:mi')::timestamp with time zone::text
Nota:我已在上面的表达式中将mm
替换为mi
,因为我认为预计会有分钟而非一小时后的几个月。