我正在尝试编写一个查询,如果日期时间列(fromdate)为null或fromdate在当前日期之前,则可以返回结果。这是我的疑问:
select * from patients where from date =null OR from date <= cast(cast(getdate() as date)as datetime)
但此查询返回空结果。有人可以确认我在查询当前日期检查有效之前是否检查空值?
---------在多于1列上应用过滤器:-----------
SELECT *
FROM patients
WHERE(fromDate = NULL
OR t1.fromDate <= CONVERT(DATE, GETDATE()))
AND (t1.toDate = NULL
OR t1.toDate >= CONVERT(DATE, GETDATE()));
我在表中的todate中有一个空列但是像这样应用给我空结果
答案 0 :(得分:2)
这对你有用
SELECT *
FROM patients
WHERE fromdate IS NULL
OR fromdate <= CONVERT(DATE, GETDATE());
答案 1 :(得分:1)
你会这样做:
select p.*
from patients p
where p.fromdate is null or p.fromdate <= cast(getdate() as date);
注意:
fromdate
中没有空格。NULL
的正确比较为IS NULL
,而不是= NULL
。date
投回datetime
进行比较。答案 2 :(得分:1)
试试这个:
select * from patients where [fromdate] is null OR [fromdate] <= cast(getdate() as datetime)