如何提取昨天和今天之间的数据?

Lea*_*SQL -1 sql-server select datetime

我有一个名为列createdatedatetime数据类型。我想提取今天和昨天之间的数据。

select * from table1(nolock) where createdate ='2018-06-01' --not getting any output
Run Code Online (Sandbox Code Playgroud)

我想要这样的东西:

select * from table1(nolock) where createdate between '2018-06-01' and '2018-06-02'
Run Code Online (Sandbox Code Playgroud)

而不是硬编码日期,我需要之间dateadd(d,-1,getdate()) and getdate(),但getdate()提供当前时间戳。我怎样才能搜索一整天 like2018-06-02而不是2018-06-02 02:12:13.423

Aar*_*and 7

您总是可以使用SELECT CONVERT(date, GETDATE());.

所以要找到昨天的所有数据,你说:

DECLARE @today date = GETDATE();

SELECT ...
WHERE createDate >= DATEADD(DAY, -1, @today)
  AND createDate <  @today;
Run Code Online (Sandbox Code Playgroud)

对于今天,这是一个简单的更改:

WHERE createDate >= @today
  AND createDate <  DATEADD(DAY, 1, @today);
Run Code Online (Sandbox Code Playgroud)