【问题标题】:How do I return a date value in postgres sql?如何在 postgresql 中返回日期值?
【发布时间】:2011-02-06 06:50:49
【问题描述】:

例如:

year
-----
1999
2001
2004
2006

如何返回大于 2000 的年份?

年份以日期格式存储。

【问题讨论】:

标签: sql postgresql date


【解决方案1】:

使用 PostgreSQL 特定的DATE_PART:

SELECT DATE_PART('year', t.date_column)
  FROM YOUR_TABLE t
 WHERE t.date_column > DATE '2000-01-01'

使用 EXTRACT (ANSI):

SELECT EXTRACT(YEAR FROM t.date_column)
  FROM YOUR_TABLE t
 WHERE t.date_column > DATE '2000-01-01'

您可以使用 WHERE 子句中的函数来过滤掉年份/等,但这样做会使列上的索引无用。

【讨论】:

  • 在 WHERE 子句中使用 EXTRACT 时,extract(year from date_column) 上的基于函数的索引将可用。
  • @a_horse_with_no_name: 是的,不知道 PostgreSQL 支持它们——你碰巧知道第一个支持它们的版本是什么吗?
  • 6.5的手册中已经提到了CREATE INDEX语法中函数的使用。所以我会说:“总是”
猜你喜欢
  • 2020-09-03
  • 2016-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-22
  • 2014-12-02
  • 1970-01-01
  • 2022-07-03
相关资源
最近更新 更多