在PSQL中从字符串中提取年份和周数时出现问题

Jos*_*hua 7 postgresql datetime

假设我有一系列SQL表,其名称为name_YYYY_WWYYYY = year和WW = week number.如果我调用一个将用户定义的日期引导到右表的函数.

如果输入的日期是"20110101":

SELECT EXTRACT (WEEK FROM DATE '20110101') 返回52和

SELECT EXTRACT (YEAR FROM DATE '20110101') 返回2011年.

虽然是没有错的这些结果我想"20110101"要么指向表name_2010_52name_2011_01,不是name_2011_52象现在这样,当我concanate结果,形成表的查询.

这个问题的优雅解决方案?

Hae*_*aes 16

函数to_char()将允许您格式化日期或时间戳以输出更正iso周 iso年.

SELECT to_char('2011-01-01'::date, 'IYYY_IW') as iso_year_week;
Run Code Online (Sandbox Code Playgroud)

将产生:

 iso_year_week 
---------------
 2010_52
(1 row)
Run Code Online (Sandbox Code Playgroud)