gpt4 book ai didi

postgresql - 在 PostgreSQL 中使用 IYYY 的日期格式给出了奇怪的结果

转载 作者:行者123 更新时间:2023-11-29 11:39:15 31 4
gpt4 key购买 nike

IYYY 与 YYYY 的日期格式:

SELECT to_char( '2012-12-31'::DATE, 'IYYY-MM-DD' ) AS weird,
to_char( '2012-12-31'::DATE, 'YYYY-MM-DD' ) AS expected;

结果:

   weird    |  expected  
------------+------------
2013-12-31 | 2012-12-31

如果“奇怪”的结果是“2013-01-01”,也就不足为奇了。

这里有什么问题吗? (PostgreSQL 9.1.7)

最佳答案

IYYY 指的是指定日期的星期几。

2013 年的第一周从 2012 年 12 月 31 日星期一开始,所以问题中奇怪的结果是正确的。

manual 中有一个与此直接相关的警告:

Attempting to construct a date using a mixture of ISO week and Gregorian date fields is nonsensical, and will cause an error. In the context of an ISO year, the concept of a "month" or "day of month" has no meaning. In the context of a Gregorian year, the ISO week has no meaning. Users should avoid mixing Gregorian and ISO date specifications.

另见维基百科 iso week date有关详细信息的文章。

关于postgresql - 在 PostgreSQL 中使用 IYYY 的日期格式给出了奇怪的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14461132/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com