仅从DateTime列中选择“YYYY”组件

时间:2014-02-04 07:53:28

标签: sql datetime select

使用SQLCe,我有一个DateTime类型的列。我想按年过滤。是否有可能或者我应该分开存储年份,这在我看来是多余的? 例如。得到2010,2011,2013的明显结果。 感谢

3 个答案:

答案 0 :(得分:0)

认为您拥有DATEPART功能(但不是YEAR功能)

所以

select DatePart(yyyy, <yourDateTime>) 

或者如果那是为了订购,当然

order by DatePart(yyyy, <yourDatetime>)

修改

select max(InvoiceID)
from yourTable
where DatePart(yyyy, IssuedDate) = 2013

答案 1 :(得分:0)

通常的方法是使用范围过滤器:

select *
from table
where datecolumn >= '2012/01/01' and datecolumn < '2013/01/01'

这样做的好处是可以使用datecolumn上的任何索引。

由于您接受的答案显示您只关心一年,因此您对此答案的反对意见并不适用。

select max(InvoiceID)
from table
where IssuedDate >= '2012/01/01' and IssuedDate < '2013/01/01'

工作得很好。

答案 2 :(得分:0)

您可以使用DATEPART函数返回该列的年份:

SELECT DATEPART(yyyy, datetimecolumn) FROM YourTable

然后您可以使用where子句进行过滤:

WHERE datetimecolumn = 2014