我的应用程序有一个错误,它指出如果有这样的日期格式:
SELECT IsDate('4:27:01') -- ok
SELECT IsDate('25:01') ---> not ok
SELECT IsDate('23:01') ---> ok
在我们的数据中,有时格式只有5个字符,这意味着它只有几分钟和几秒钟。
处理此问题的最佳方法是什么?
答案 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