and date(p.date_of_sale) <= current_date
我试了这个密码得到了这样的答案。
。但错误显示为这样。
.请看2张截图,因为我英语不流利,不知道怎么用文字解释,所以我加了2张截图。
raogr8fs1#
您的问题来自to_char(p.date_of_sale, 'yyyy "-week" iw'),其中iw = ISO 8601周编号年份的周数(01-53;一年的第一个星期四在第1周)而yyyy = 4位数的年份(不是ISO 8601年份)这两个参数有时不一致,例如2023年1月1日:
to_char(p.date_of_sale, 'yyyy "-week" iw')
iw
yyyy
SELECT to_char('20230101' :: date, 'yyyy') => 2023 SELECT to_char('20230101' :: date, 'iw') => 52
如果要保持一致,您可以:
select to_char('20230101' :: date, 'YYYY"-week" w') => 2023-week 1
或
select to_char('20230101' :: date, 'IYYY"-week" iw') => 2022-week 52 (ISO8601 year and week)
参见dbfiddle
1条答案
按热度按时间raogr8fs1#
您的问题来自
to_char(p.date_of_sale, 'yyyy "-week" iw')
,其中iw
= ISO 8601周编号年份的周数(01-53;一年的第一个星期四在第1周)而
yyyy
= 4位数的年份(不是ISO 8601年份)这两个参数有时不一致,例如2023年1月1日:
如果要保持一致,您可以:
或
参见dbfiddle