2010-07-16 4 views
0

У меня есть ошибка на нашем приложении, и это указывает, что если есть формат даты, как это:IsDate в TSQL Выпуск

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

В наших данных, иногда формат только 5 символов, что означает, что только за несколько минут и секунд.

Каков наилучший способ справиться с этим?

+0

Извините, я не понимаю, что именно вы здесь задаете? –

+1

Как вы в настоящее время различаете «11: 15» между 11 и 15 секундами и 11:15? –

ответ

2

Самый простой способ - добавить «00:», когда длина составляет 5 символов.
, например. :

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 
Смежные вопросы