TSQL问题中的IsDate

TSQL问题中的IsDate,tsql,Tsql,我的应用程序有一个bug,它指出如果有这样的日期格式: SELECT IsDate('4:27:01') -- ok SELECT IsDate('25:01') ---> not ok SELECT IsDate('23:01') ---> ok 在我们的数据中,有时格式只有5个字符,这意味着它仅用于分钟和秒 处理此问题的最佳方法是什么?最简单的方法可能是在长度为5个字符时添加“00:”。 e、 g: 对不起,我不太明白你在问什么?你目前如何区分11分15秒和11:15之间的时间

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

SELECT IsDate('4:27:01') -- ok
SELECT IsDate('25:01') ---> not ok
SELECT IsDate('23:01') ---> ok
在我们的数据中,有时格式只有5个字符,这意味着它仅用于分钟和秒


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

最简单的方法可能是在长度为5个字符时添加“00:”。
e、 g:


对不起,我不太明白你在问什么?你目前如何区分11分15秒和11:15之间的时间?
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