在postgres中,我有一个带有日期列的表。现在postgres允许我以Y-m-d格式写日期。但我需要d / m / Y格式的日期。怎么改呢?
当我这样做时:
show datestyle;
我明白了:
"ISO, DMY"
并以此格式13/02/2009
但当我再次关闭并打开桌子时,我会看到2009-02-13
。 JDBC也以这种格式给出了日期。我做错了什么?
答案 0 :(得分:12)
yyyy-mm-dd是日期字段的推荐格式,它是ISO 8601格式。
您可以更改postgresql.conf文件中的格式。
用户可以使用SET选择日期/时间样式 datestyle命令,postgresql.conf中的DateStyle参数 配置文件,或者PGDATESTYLE环境变量 服务器或客户端。格式化函数to_char是 也可以更灵活地格式化日期/时间输出。
希望这有帮助!
答案 1 :(得分:7)
你也可以使用命令
set datestyle to [your new datestyle];
在postgreSQL的控制台中。
答案 2 :(得分:4)
将to_char功能与日期一起使用,如下所示:
select to_char(date_column1, 'Mon/DD/YYYY');
答案 3 :(得分:2)
如果可能的话,请不要使用DATESTYLE
。它会影响会话中的所有代码,包括可能没有预料到的存储过程等内容,也可能没有在其定义中设置明确的覆盖DATESTYLE
。
如果可以,只要您需要使用任何可能含糊不清的日期格式(例如to_char
),就可以使用to_timestamp
作为日期输出,并使用D/M/Y
作为日期输入。其余时间使用ISO日期。