将日期转换为整数(1 到 365)

Converting date into integer (1 to 365)

我不知道 postgres 中是否有函数可以做到这一点,但是如何将日期 (yyyy-mm-dd) 转换为 SQL 中的数字对应者?

例如table输入

id    | date
------+-------------
1     | 2013-01-01       
2     | 2013-01-02         
3     | 2013-02-01    

输出

id    | date
------+-------------
1     | 1       
2     | 2         
3     | 32 

您正在寻找具有 doy("Day Of [的 extract() 函数 Year") 参数,而不是 day ("day of the week"):

select id, extract(doy from "date") 
from the_table;

根据 this documentation 和其他选项是做这样的事情:

SELECT id, DATE_PART('day', date - date_trunc('year', date)) + 1 as date
from table_name;

Here 你可以看到一个 sql-fiddle.