SQL "WHERE date = yesterday" 但日期是字符串 (yyyymmdd)
SQL "WHERE date = yesterday" but date is string (yyyymmdd)
我正在尝试在 SQL 中查询 return 昨天创建的所有记录,我知道如果日期字段的数据类型正确,这将非常容易,但是在此数据库中,日期在字符串中。
此查询 return 的正确行数:
SELECT id FROM table WHERE createdDate = '20180814'
我试过这样做:
SELECT id FROM table WHERE CONVERT(date, createdDate) = dateadd(day,-1, getdate())
但是 return 编辑了 0 行,但是没有错误。
不能更改 createdDate 的数据类型,也不能更改数据库结构。
重点是return昨天执行查询时创建的记录,此时我没有想法,请帮忙:)
谢谢!
问题是 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())
我正在尝试在 SQL 中查询 return 昨天创建的所有记录,我知道如果日期字段的数据类型正确,这将非常容易,但是在此数据库中,日期在字符串中。
此查询 return 的正确行数:
SELECT id FROM table WHERE createdDate = '20180814'
我试过这样做:
SELECT id FROM table WHERE CONVERT(date, createdDate) = dateadd(day,-1, getdate())
但是 return 编辑了 0 行,但是没有错误。
不能更改 createdDate 的数据类型,也不能更改数据库结构。
重点是return昨天执行查询时创建的记录,此时我没有想法,请帮忙:)
谢谢!
问题是 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())