我有一个查询需要知道自当年 1 月 1 日以来过去了多少天。
这意味着如果查询运行例如:
2nd Jan 2017 than it should return 2 (as 2 days passed since 1st Jan 2017).
10th Feb 2016 than it should return 41 (as 41 days passed since 1st Jan 2016).
基本上它需要从 Curent Date
中获取 Current Year
并计算自 1/1/(Year) 以来的天数。
我有当前年份:SELECT EXTRACT(year FROM CURRENT_DATE);
我创建了 1 月 1 日:
select (SELECT EXTRACT(year FROM CURRENT_DATE)::text || '-01-01')::date
如何获取此日期与 Current_Date
之间的差异?
基本上这个问题可以给定两个日期,它们之间有多少天?
像 age(timestamp '2016-01-01', timestamp '2016-06-15')
不好 因为我只需要结果天。而年龄以年、月和日给出。
最佳答案
一种更简单的方法可能是从日期中提取年中的第几天(“doy”)字段:
db=> SELECT EXTRACT(DOY FROM CURRENT_DATE);
date_part
-----------
41
如果你需要它作为一个数字,你可以直接转换它:
db=> SELECT EXTRACT(DOY FROM CURRENT_DATE)::int;
date_part
-----------
41
注意:结果 41 是今天 2 月 9 日运行查询产生的。
关于sql - 如何获得今年年初以来过去了多少天?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35309400/