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