SQL Server 2005
如何检查日期是否有效 smalldatetime ?在将datetime转换为smalldatetime之前,我已经知道该值是有效的datetime。但是在将datetime转换为smalldatetime时,它会引发溢出错误。
所以我想检查该值是否有效smalldatetime,如果它然后转换为smalldatetime,则返回NULL。
提前致谢。
答案 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