我datecreated在表中有字段。它包含的值为“ 2009-12-30 11:47:20:297”,我有这样的查询:
datecreated
select * from table where DateCreated = getdate()
尽管今天的日期存在一行,但是在执行上述查询时我没有得到这一行。有人可以帮忙吗?
您的查询未返回期望的行的原因是因为GETDATE()返回了执行查询时的日期和时间部分。DateCreated列中的值与时间部分不匹配,因此不会返回任何行。
DateCreated
有多种构造查询的方法,以便查询仅基于日期组件来评估日期。这是一个例子:
WHERE YEAR(datecreated) = YEAR(GETDATE()) AND MONTH(datecreated) = MONTH(GETDATE()) AND DAY(datecreated) = DAY(GETDATE())
不幸的现实是,使用列上的函数进行的任何查询都意味着,如果列上存在索引,则无法使用该索引。