如何更改Postgres中的日期格式?

问题描述

| 我收到以下错误消息 错误:日期/时间字段值超出范围:\“ 13/01/2010 \” 提示:也许您需要一个不同的\“ datestyle \”设置。 我想以DD / MM / YYYY格式获取日期     

解决方法

SHOW datestyle;

 DateStyle 
-----------
 ISO,MDY
(1 row)

INSERT INTO container VALUES (\'13/01/2010\');
ERROR:  date/time field value out of range: \"13/01/2010\"
HINT:  Perhaps you need a different \"datestyle\" setting.

SET datestyle = \"ISO,DMY\";
SET

INSERT INTO container VALUES (\'13/01/2010\');
INSERT 0 1

SET datestyle = default;
SET
http://www.postgresql.org/docs/current/static/runtime-config-client.html#GUC-DATESTYLE   DateStyle-设置显示格式   日期和时间值,以及   解释模棱两可的规则   日期输入值。   由于历史原因,此变量   包含两个独立的组件:   输出格式规范(ISO,   Postgres,SQL或德语)和   输入/输出规范   年/月/日订购(DMY,MDY或   YMD)。 当然,最好使用明确的输入格式(ISO 8601),但是根据需要进行调整没有问题。     ,您可以将日期样式设置为欧元(dd / mm / yyyy):
SET DateStyle TO European;
我不建议这样做。我通常尝试在格式之间进行转换,并在数据源中保留ISO格式的日期。毕竟,这仅是表示的问题,而不是不同的数据的问题。     ,编辑: 使用此COPY时,有效的输入格式由服务器配置定义,可以使用Berry所述的SET命令针对当前会话更改有效的输入格式,也可以通过调整服务器配置进行更改。 手册中的DateStyle描述: http://www.postgresql.org/docs/current/static/runtime-config-client.html#GUC-DATESTYLE 以下内容不适用于实际情况,但无论如何我还是要留作参考 使用日期(或时间戳记)文字时,请始终指定格式掩码以对其进行转换。否则,您的声明将无法移植,并且不一定会在每次安装时都运行。 日期文字的ANSI SQL标准如下所示:
UPDATE some_table
   SET date_column = DATE \'2011-05-25\'
WHERE pk_column = 42;
如果您不能更改文字格式,则需要应用to_date()函数
UPDATE some_table
   SET date_column = to_date(\'13/01/2010\',\'dd/mm/yyyy\')
WHERE pk_column = 42;
如果这不是您要执行的操作,则应向我们显示生成错误的完整SQL语句。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...