是有效的smalldatetime?

时间:2010-09-23 13:53:06

标签: sql-server-2005 tsql

SQL Server 2005

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

所以我想检查该值是否有效smalldatetime,如果它然后转换为smalldatetime,则返回NULL。

提前致谢。

3 个答案:

答案 0 :(得分:2)

您可以使用此功能T rouble With ISDATE And Converting To SMALLDATETIME,名称为fnIsSmallDateTime

还有如何使用它的例子

答案 1 :(得分:1)

SELECT CASE WHEN @yourDateTime BETWEEN '19000101 00:00:00.000'
                                   AND '20790606 23:59:29.997'
            THEN CAST(@yourDateTime AS SMALLDATETIME)
            ELSE NULL END

答案 2 :(得分:0)

使用SQL 2012时,您可以使用TRY_CONVERT

SELECT TRY_CONVERT(smalldatetime,@yourDateTime)

如果日期是有效日期,则返回该日期,否则返回null。 在WHERE子句中将不起作用。

https://docs.microsoft.com/en-us/sql/t-sql/functions/try-convert-transact-sql?view=sql-server-2017