0

次のような2つの日付があります。

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'

しかし、私は次のエラーが発生しています:

メッセージ 241、レベル 16、状態 1、行 5
文字列から日付や時刻を変換するときに、変換に失敗しました。

4

2 に答える 2

1

そのエラーが発生する唯一の行は次のとおりです

End_Date <> '-'

End_Date が DATE または DATETIME 列であることを暗示しているようです。その場合は、次を使用して日付を簡単に比較できます。

End_Date < GETDATE()
于 2013-03-20T10:21:02.667 に答える
0

getdate() を真夜中に丸めることができます。

         SELECT CAST(FLOOR(CAST(GETDATE() AS FLOAT)) AS DATETIME)
于 2013-03-20T10:46:24.693 に答える