Time 从日期postgres中提取周数

Time 从日期postgres中提取周数,time,postgresql-9.1,Time,Postgresql 9.1,我想将周数提取为: 2015-52 从格式为的日期开始: 2015-12-27 我怎样才能在博士后中做到这一点 “我的周”是从周一到周日计算的。要以单个字符值获取年份和周,请使用 IW返回年份和周数,而iyy返回相应的年份(可能是上一年) 如果您需要年数和周数作为数字,请使用 你可以这样做 SELECT EXTRACT(year FROM current_date) FROM table ; 我是这样做的 extract(week from cast(current_date as dat

我想将周数提取为:

2015-52
从格式为的日期开始:

2015-12-27
我怎样才能在博士后中做到这一点


“我的周”是从周一到周日计算的。

要以单个字符值获取年份和周,请使用

IW
返回年份和周数,而
iyy
返回相应的年份(可能是上一年)

如果您需要年数和周数作为数字,请使用

你可以这样做

SELECT EXTRACT(year FROM current_date) FROM table ;
我是这样做的

extract(week from cast(current_date as date))
extract(year from cast(current_date as date))

与没有名字的@a_horse_相同,但要注意,如果
当前日期
在新年的0周内(去年的最后一周(53)),那么
提取('isoyear'自当前日期)
提取('year'自当前日期)
之间有一点区别,尤其是当您提取

例如:

以下输出为
2020
2021

select EXTRACT('isoyear' from to_timestamp('2021-01-02 17:37:27', 'YYYY-MM-DD hh24:mn:ss')) as year
select EXTRACT('year' from to_timestamp('2021-01-02 17:37:27', 'YYYY-MM-DD hh24:mn:ss')) as year
以下输出为
2021

select EXTRACT('isoyear' from to_timestamp('2021-01-02 17:37:27', 'YYYY-MM-DD hh24:mn:ss')) as year
select EXTRACT('year' from to_timestamp('2021-01-02 17:37:27', 'YYYY-MM-DD hh24:mn:ss')) as year

@费纳博克勒斯:a,对。当使用
IW
时,还需要使用isoyear
iyy
-我会解决这个问题哇,很好地修改了一个3年前的答案:)我不期望得到回复,只是想给下一个人留下一些东西,让他看这页。问题同时询问年份和周。表达式
cast(当前日期为date)
可以简化为当前日期