我正尝试在SQL中执行查询,该查询应返回昨天创建的所有记录,我知道如果date字段的数据类型正确,但是在此db中的日期在字符串中,这将非常容易。 / p>
此查询返回正确的行数:
SELECT id FROM table WHERE createdDate = '20180814'
我试图做这样的事情:
SELECT id FROM table WHERE CONVERT(date, createdDate) = dateadd(day,-1, getdate())
但是返回0行,但是没有错误。
更改选项createdDate的数据类型既不是选项,也不是对数据库结构的任何更改。
要点是,每当执行查询时,返回昨天创建的记录,此时,我出于想法,请帮忙:)
谢谢!
答案 0 :(得分:1)
问题是GETDATE()
上的时间部分:
SELECT id
FROM table
WHERE CONVERT(date, createdDate) = DATEADD(day, -1, CONVERT(date, getdate()));
或者:
WHERE createdDate >= DATEADD(day, -1, CONVERT(date, getdate())) AND
createdDate < CONVERT(date, getdate())