首页 > 解决方案 > 在 where 条件 (SQL) 中仅使用 DateTime 的年份部分

问题描述

我有一个 DateTime 类型的列,我想根据该数据在某一年的条件来查询表。我试过这个但没有用

WHERE YEAR(InvoiceDate) = 2013;但没用

标签: sql

解决方案


通常,您不想在列上使用函数。这阻碍了优化器。最好这样写:

where invoicedate >= date '2013-01-01' and
      invoicedate < date '2014-01-01'

注意: date是日期文字的 SQL 标准构造。一些数据库不使用它。大多数数据库支持 YYYY-MM-DD 作为日期文字。


推荐阅读