假设我有一个包含ID
,Date1
和Date2
列的表格,其中Date2
可以是NULL
。我现在想要一个忽略Date2
的SQL语句,如果它是NULL
。
所以我需要这样的东西:
SELECT *
FROM
[myTable]
WHERE
ID = @someId
AND Date1 <= GETDATE()
AND Date2 >= GETDATE() IF Date2 IS NOT NULL
所以我想检查Date2是否不是NULL
,然后将其与当前日期进行比较。如果是NULL
那么我只想忽略它
希望我的要求清晰易懂。
干杯
西蒙
答案 0 :(得分:3)
AND Date1 <= GETDATE()
AND (Date2 IS NULL OR Date2 >= GETDATE() )
或
AND Date1 <= GETDATE()
AND COALESCE(Date2, GETDATE()) >= GETDATE()-- which means : if Date2 IS NULL say Date2 = GETDATE()
答案 1 :(得分:2)
AND (Date2 >= GETDATE() OR Date2 IS NULL)
答案 2 :(得分:1)
你可以这样做:
ISNULL(Date2, GETDATE()) >= GETDATE()
答案 3 :(得分:1)
试试这个sql。
SELECT *
FROM yourtable
WHERE ID = @someId
AND Date1 <= GETDATE()
AND (Date2 IS NULL
AND Date2 >= GETDATE());
答案 4 :(得分:0)
SELECT *
FROM
[myTable]
WHERE
ID = @someId
AND Date1 <= GETDATE()
AND Date2 NOT IS NULL
AND Date2 >= GETDATE();