如何解决如何更改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语句。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。