我是SQL Server的新手。请帮助我在查询中写下下面的逻辑。
If getnow() > today 4 PM
Then
SELECT *
FROM table
WHERE MailDate is Tomorrow
Else
SELECT *
FROM table
WHERE MailDate is Today发布于 2012-04-20 07:02:23
select *
from table
where DATEDIFF(day, GETDATE(), maildate) = case when
DATEPART(hour, GETDATE()) >= 16 then 1 else 0
end发布于 2012-04-20 07:01:53
IF datepart(hh, getdate()) >= 16
BEGIN
SELECT *
FROM table
WHERE DateDiff(day, getdate(), MailDate) = 1
END
ELSE
BEGIN
SELECT *
FROM table
WHERE DateDiff(day, getdate(), MailDate) = 0
END发布于 2012-04-20 07:49:43
我不知道确切的MS-语法-方言,但我将尝试证明您不需要IF或CASE构造。我以@mellamokb的回复为例。
SELECT *
FROM the_table
WHERE ( DATEPART(hour, GETDATE()) >= 16
AND DATEDIFF(day, GETDATE(), MailDate) = 1)
OR (DATEPART(hour, GETDATE()) < 16
AND DATEDIFF(day, GETDATE(), MailDate) = 0)
; https://stackoverflow.com/questions/10237984
复制相似问题