我想将周数提取为:
{ ... "tags": ["Lorem", "ipsum", "cupcake"] ... }
从格式为:
的日期开始2015-52
我如何在postgres中执行此操作?
我的周数是从星期一到星期日计算的。
答案 0 :(得分:18)
要以单个字符值获取年份和周,请使用to_char()
twov
select to_char(current_date, 'IYYY-IW');
返回年份和周数,defined in the ISO standard和IW
返回相应的年份(可能是上一年)。
如果您需要将年份和周数作为数字,请使用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 ;