如何从日期字段中获取年份,如果我有一个日期字段product_date
,则每年有1000个条目我想要一年的明智记录。 product_date = 2013/01/01就像我想要搜索2013。
答案 0 :(得分:4)
SELECT EXTRACT(YEAR FROM product_date ) FROM tbl_product;
根据YEAR
with cte as(
SELECT EXTRACT(YEAR FROM product_date) as myYear FROM tbl_product order by myYear
)
select product_date,* from tbl_product where extract(year from product_date) in (select myYear
from cte)
答案 1 :(得分:1)
我不确定"年度明智记录"应该是因为您未能提供一些示例数据,但是为了从日期列中获取年份,您可以使用extract()
函数:
select *
from some_table
where extract(year from product_date) = 2013;
有关extract
功能的详细信息,请参阅手册:
http://www.postgresql.org/docs/current/static/functions-datetime.html#FUNCTIONS-DATETIME-EXTRACT
但上述内容不会使用product_date
列上的索引。因此,如果性能非常重要,您有两种选择:
extract(year from product_date)
使用between子句:
select *
from some_table
where product_date between date '2013-01-01' and date '2013-12-31';