我有两个日期如下。
End_Date = DATEADD(DAY, ABS(CHECKSUM(NEWID()) % 365), '01/01/2000')
Cur_Date = SELECT CONVERT(VARCHAR(10),GETDATE(),111
我想检查End_Date
是否小于Cur_Date
,以便我可以进行特定更新。
我当前的查询如下
update bed
set Status_Avai_Occ =
case when (
( select End_Date
from Patient_Record
where b_ID= @b and
End_Date <> '-'
and End_Date is not null
) < (
SELECT CONVERT(VARCHAR(10),GETDATE(),111)
)
) then 'Available'
但是我收到以下错误:
Msg 241,Level 16,State 1,Line 5
从字符串转换日期和/或时间时转换失败。
答案 0 :(得分:1)
我能看到哪一行会产生错误
End_Date <> '-'
这似乎意味着End_Date是DATE或DATETIME列。如果是这样,您可以使用以下方法简单地比较日期:
End_Date < GETDATE()
答案 1 :(得分:0)
你可以将getdate()舍入到午夜,所以:
SELECT CAST(FLOOR(CAST(GETDATE() AS FLOAT)) AS DATETIME)