SQL Server:检查日期的有效性

时间:2018-07-23 19:51:23

标签: sql sql-server

我正在尝试获取仅具有有效日期格式(%%cython from cpython cimport PyLong_Check def print_me(i): if not PyLong_Check(i): print("Not an integer!") else: print(i) )的记录。我正在使用以下YYYYMMDD条件。我想知道还有其他方法吗?

where

3 个答案:

答案 0 :(得分:2)

如果您具有SQL Server 2012或更高版本,则可以使用TRY_CONVERT()

答案 1 :(得分:0)

我相信您可以使用FORMAT()函数来实现此目的。

SELECT s.Date 
...
FROM ...
WHERE 
        s.Date IS NOT NULL
    AND ISDATE(s.Date) = 1
    AND s.Date = FORMAT(s.Date, 'yyyymmdd');

但这可能相当慢,因为它必须为通过其他FORMAT()条件的每个记录返回的每个记录运行WHERE函数。

但是您可以试一试。

答案 2 :(得分:0)

如果要任何有效的日期格式,则可以使用:

where try_convert(varchar(255), s.date) is not null

如果您特别想要YYYYMMDD,则可以执行以下操作:

where try_convert(varchar(255), s.date, 112) is not null