我正在尝试写一个存储过程来做一天 - 1,但是在这个月的第一天,报告是空白的,我需要它来显示上个月的最后一天,因为它每隔一天都正常工作。我假设因为1-1 = 0.这有更好的逻辑吗?
我目前正在使用。
WHERE DAY([Audit Control Date]) = (DAY(GETDATE()) - 1)
我的日期功能如下:
ALTER FUNCTION [dbo].[f_Date]
(@date CHAR(7))
RETURNS DATETIME
BEGIN
RETURN
(SELECT ConvertedDate =
CASE WHEN (@date) = 999999 THEN NULL
WHEN (@date) = 0 THEN NULL
WHEN LEN(@date) = 6 THEN NULL
WHEN LEN(@date) = 7 THEN CAST('20' + RIGHT(@date, 6) AS DATE)
ELSE CAST('19' + RIGHT(@date, 6) AS DATE)
END)
END
如果这是一个愚蠢的问题我很抱歉,它让我陷入困境。
答案 0 :(得分:2)
您可以比较日期值而不是日期号
[Audit Control Date] = DATEADD (day , -1 , GetDate() )