从postgres日期提取周数

时间:2015-12-02 18:17:28

标签: time postgresql-9.1

我想将周数提取为:

{ ... "tags": ["Lorem", "ipsum", "cupcake"] ... }

从格式为:

的日期开始
2015-52

我如何在postgres中执行此操作?

我的周数是从星期一到星期日计算的。

4 个答案:

答案 0 :(得分:18)

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

twov

select to_char(current_date, 'IYYY-IW'); 返回年份和周数,defined in the ISO standardIW返回相应的年份(可能是上一年)。

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

IYYY

答案 1 :(得分:1)

我已经做到了

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

答案 2 :(得分:0)

与@a_horse_with_no_name 一样,但要注意 extract('isoyear' from current_date)extract('year' from current_date) 之间有一点区别,如果 current_date 在新年的第 0 周内(去年的最后一周(53))年),尤其是当您还提取 week 时。

例如:

后续输出是2020而不是2021

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

以下输出是2021

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

答案 3 :(得分:-3)

您可以执行以下操作

SELECT EXTRACT(year FROM current_date) FROM table ;