假设我有一系列名为name_YYYY_WW的sql表,其中YYYY = year和WW = week number.如果我调用一个将用户定义的日期引导到右表的函数.
如果输入的日期是“20110101”:
SELECT EXTRACT(周日’20110101’周)返回52和
SELECT EXTRACT(年末日期’20110101′)将于2011年返回.
虽然这些结果没有错,但是我希望“20110101”指向表name2010_52或name_2011_01,而不是name_2011_52,因为它现在当我将结果汇总以形成表的查询时.
这个问题的优雅解决方案?
函数
to_char()将允许您输出
format a date or timestamp以更正iso周和iso年.
SELECT to_char('2011-01-01'::date,'IYYY_IW') as iso_year_week;
将产生:
iso_year_week --------------- 2010_52 (1 row)