我如何从日期字段中获取年份

时间:2014-08-12 05:37:58

标签: postgresql

如何从日期字段中获取年份,如果我有一个日期字段product_date,则每年有1000个条目我想要一年的明智记录。 product_date = 2013/01/01就像我想要搜索2013。

2 个答案:

答案 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';