繁体   English   中英

SQL "WHERE 日期 = 昨天" 但日期是字符串 (yyyymmdd)

[英]SQL "WHERE date = yesterday" but date is string (yyyymmdd)

我正在尝试在 SQL 中执行一个查询,该查询应该返回昨天创建的所有记录,我知道如果日期字段的数据类型正确,这将非常容易,但在这个数据库中,日期是字符串。

此查询返回正确的行数:

SELECT id FROM table WHERE createdDate = '20180814'

我试图做这样的事情:

SELECT id FROM table WHERE CONVERT(date, createdDate) = dateadd(day,-1, getdate()) 

但是返回了 0 行,但没有错误。

更改 createdDate 的数据类型不是一个选项,也不是数据库结构中的任何更改。

关键是在执行查询时返回昨天创建的记录,此时我没有想法,请帮忙:)

谢谢!

问题是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())

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM