TSQL问题中的IsDate

时间:2010-07-16 00:17:54

标签: tsql

我的应用程序有一个错误,它指出如果有这样的日期格式:

SELECT IsDate('4:27:01') -- ok
SELECT IsDate('25:01') ---> not ok
SELECT IsDate('23:01') ---> ok

在我们的数据中,有时格式只有5个字符,这意味着它只有几分钟和几秒钟。

处理此问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

当长度为5个字符时,最简单的方法可能是添加“00:” 例如:

declare @str varchar(100)
set @str = '25:01'
-- if length is 5, interpret as  00:mi:ss
set @str = (CASE WHEN LEN(@str)=5 THEN '00:' + @str ELSE @str END)
select ISDATE(@str) -- shows 1
select cast(@str as time)  -- shows 00:25:01.000