0

今天是个好日子!

我正在使用ISDATE()带有日期列的 T-SQL 函数作为参数来过滤掉错误的日期;问题是该ISDATE函数在遇到NULL值时将返回零。

所以用下面的例子;如果它们的日期为空,则表中的有效数据将被排除在结果集中。我该如何解决这个问题,以便我可以获得有效日期,但也可以检索没有日期的记录?我也需要没有日期的记录,我只需要删除那些日期不正确的记录,例如,不完整的日期或缺少字符的日期。

例子:

SELECT * FROM EXAMPLE WHERE ISDATE(MAYDATE) <> 0

谢谢我的朋友们!

4

4 回答 4

2

您可以使用ISNULL函数将 NULL 值替换为仅由 ISDATE 函数使用的有效日期值。这里有两个例子:

SELECT * FROM EXAMPLE WHERE ISDATE(ISNULL(MAYDATE, '1/1/1900')) <> 0
SELECT * FROM EXAMPLE WHERE ISDATE(ISNULL(MAYDATE, GETDATE())) <> 0

或者只是检查该值是否为 NULL

SELECT * FROM EXAMPLE WHERE (ISDATE(MAYDATE) <> 0) OR (MAYDATE IS NULL)
于 2012-05-11T20:36:04.570 回答
1

尝试:

SELECT * FROM EXAMPLE WHERE ISDATE(MAYDATE) <> 0 OR MAYDATE IS NULL
于 2012-05-11T20:30:50.627 回答
1

首先检查空值

SELECT * FROM EXAMPLE WHERE MAYDATE is null or ISDATE(MAYDATE) <> 0
于 2012-05-11T20:31:42.570 回答
0
SELECT * FROM EXAMPLE WHERE (MAYDATE IS NOT NULL AND ISDATE(MAYDATE) <> 0)
     OR (MYDATE IS NULL)
于 2012-05-11T20:31:05.353 回答