Sql 在日期范围内包含空值

Sql 在日期范围内包含空值,sql,sql-server,sql-date-functions,Sql,Sql Server,Sql Date Functions,我试图过滤掉日期范围之间的数据,其中也包括空值, 例如:开始日期=2013年1月18日,结束日期=2013年1月20日 在数据库中的某些数据中,开始日期为2013年1月19日,结束日期为空;我还需要包括这个特殊的值, 这是我到目前为止尝试过的问题 SELECT T1.START_DATE, T1.END_DATE FROM myTable T1 WHERE to_date(T1.START_DATE, 'DD/MM/yyyy HH24:MI:SS') >= to_dat

我试图过滤掉日期范围之间的数据,其中也包括空值, 例如:开始日期=2013年1月18日,结束日期=2013年1月20日

在数据库中的某些数据中,开始日期为2013年1月19日,结束日期为空;我还需要包括这个特殊的值, 这是我到目前为止尝试过的问题

SELECT T1.START_DATE,
       T1.END_DATE
FROM   myTable T1
WHERE  to_date(T1.START_DATE, 'DD/MM/yyyy HH24:MI:SS') >= to_date('01/01/2013 10:58:58', 'DD/MM/yyyy HH24:MI:SS')
       AND to_date(T1.END_DATE, 'DD/MM/yyyy HH24:MI:SS') <= to_date(IS NULL('21/01/2013 10:58:58', 0), 'DD/MM/yyyy HH24:MI:SS')
选择T1.START\u日期,
T1.结束日期
来自MyTableT1
截止日期(T1.开始日期,'DD/MM/yyyy HH24:MI:SS')>=截止日期('01/01/2013 10:58:58','DD/MM/yyyy HH24:MI:SS'))

和to_date(T1.END_date,'DD/MM/yyyyy HH24:MI:SS')我对SQL server不太熟悉,但它看起来不像
to_date()
是SQL server函数。我在中找到了它的一些参考,所以你可能指的是Oracle SQL。试试这个:

SELECT
    T1.START_DATE,
    T1.END_DATE
FROM myTable T1
WHERE 
    to_date(T1.START_DATE,'DD/MM/yyyy HH24:MI:SS') >= to_date('01/01/2013 10:58:58','DD/MM/yyyy HH24:MI:SS')
    AND (
        to_date(T1.END_DATE,'DD/MM/yyyy HH24:MI:SS') <= to_date('21/01/2013 10:58:58', 'DD/MM/yyyy HH24:MI:SS')
        OR T1.END_DATE IS NULL
    );
选择
T1.开始日期,
T1.结束日期
来自MyTableT1
哪里
截止日期(T1.开始日期,'DD/MM/yyyy HH24:MI:SS')>=截止日期('01/01/2013 10:58:58','DD/MM/yyyy HH24:MI:SS')
及(

据我所知,to_date(T1.END_date,'DD/MM/yyyyy HH24:MI:SS')
to_date()
不是SQL Server的一部分。您的示例代码和标记不匹配,但我不确定它需要更正的方向。我找不到任何对
to_date()的引用
在MSDN中,但查询当前是否返回结束日期不为空的记录?在对已删除答案的评论中,您说版本为
1.5.5
。这不是SQL Server版本号。它可能是用于访问SQL Server的非标准客户端工具的版本号,或者(更可能是)您没有使用SQL Server。如果是这种情况,请删除
SQL Server
标记,并添加一个与您正在使用的数据库系统匹配的标记。我认为这个问题需要一些编辑,例如正确的标记;