微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sql-server-2008 – 将日期与sql server中的null和datetime值进行比较

我正在编写程序,我希望使用从日期到日期的小日期时间来过滤日期.
从某个时候起,日期可以为null,而在比较时,To Date也可以为null
当日期或日期可以为空时,过滤日期.

我试过以下查询,但它给了我错误.

SELECT RQ.int_REPS_QUES_DIFF_LEVEL,SUM(1) AS NoOFDificultyQuestion FROM   
 REPS_TEST_QUES_ASSIGNED RQA   
 INNER JOIN REPS_QUESTION RQ ON RQA.int_REPS_TEST_QUES_ASSG_QUESID=RQ.PK_REPS_QUES_ID  
 WHERE int_REPS_TEST_ID IN(  
 SELECT FK_TEST_ID FROM STUDENT_EXAM SE WHERE FK_USER_ID=56 AND SE.FK_REPS_BATCH_ID=466 
    and CASE 
WHEN @FromDate!=NULL AND @ToDate!=NULL     
     THEN dat_STUD_EXAM_FINALEND >= @FromDate AND dat_STUD_EXAM_FINALEND <= @ToDate 
WHEN @FromDate!=NULL AND @ToDate=NULL  
     THEN  dat_STUD_EXAM_FINALEND >= @FromDate  
WHEN @FromDate=NULL AND @ToDate!=NULL  
     THEN  dat_STUD_EXAM_FINALEND <= @ToDate
END
 )   
 strong textGROUP BY RQ.int_REPS_QUES_DIFF_LEVEL

我在收到错误

THEN dat_STUD_EXAM_FINALEND >= @FromDate AND dat_STUD_EXAM_FINALEND <= @ToDate

这行我告诉我哪里出错了

解决方法

代替
WHEN @FromDate!=NULL AND @ToDate!=NULL

使用

WHEN @FromDate IS NOT NULL AND @ToDate IS NOT NULL

IS [NOT] NULL

如果某些内容为NULL,则在T-sql中未定义,因此您无法与之进行比较.如果两个(或两个)值之一为NULL,则=和!=两者都为false.

原文地址:https://www.jb51.cc/mssql/74736.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐