Sql server 2005 这个时间有效吗?

Sql server 2005 这个时间有效吗?,sql-server-2005,tsql,Sql Server 2005,Tsql,SQL Server 2005 如何检查给定的日期是否有效?在将datetime转换为smalldatetime之前,我已经知道该值是有效的datetime。但在将datetime转换为smalldatetime时,它会引发溢出错误 因此,我想检查该值是否为有效的smalldatetime,然后将其转换为smalldatetime,否则返回NULL 提前感谢。这里有一个函数可以使用,名字是fnissalldatetime 还有一些示例说明了如何使用它当您使用SQL 2012时,您可以使用TRY\

SQL Server 2005

如何检查给定的日期是否有效?在将datetime转换为smalldatetime之前,我已经知道该值是有效的datetime。但在将datetime转换为smalldatetime时,它会引发溢出错误

因此,我想检查该值是否为有效的smalldatetime,然后将其转换为smalldatetime,否则返回NULL

提前感谢。

这里有一个函数可以使用,名字是
fnissalldatetime


还有一些示例说明了如何使用它

当您使用SQL 2012时,您可以使用
TRY\u CONVERT

SELECT CASE WHEN @yourDateTime BETWEEN '19000101 00:00:00.000'
                                   AND '20790606 23:59:29.997'
            THEN CAST(@yourDateTime AS SMALLDATETIME)
            ELSE NULL END
SELECT TRY_CONVERT(smalldatetime,@yourDateTime)
如果日期有效,则返回该日期,否则返回null。 在WHERE子句中不起作用。