2010-07-16 66 views
0

我對我們的應用程序中的錯誤,並指出,如果有一個日期格式是這樣的:則IsDate在TSQL問題

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

在我們的數據,有時格式只有5個字符,這意味着它只是幾分鐘和秒。

處理此問題的最佳方法是什麼?

+0

對不起,我不明白你到底在問什麼? – 2010-07-16 00:31:56

+1

您目前在11分15秒和上午11點15分之間如何區分「11:15」? – 2010-07-16 00:41:33

回答

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