2010-03-04 40 views
1

表1则IsNumeric时间价值问题

Time 

10:00:00 
12:00:00 
Absent 
14:00:00 
Holiday 
..., 

时间列数据类型为varchar

我要检查的时间列值是数字那么 '存在'

试图查询

Select case when isnumeric(time) then 'Present' else time end as time from table1 

在'then'中显示错误

如何根据我的要求修改我的查询

需要查询帮助

回答

3

尝试使用ISDATE

返回1,如果表达式是有效的 日期,时间或日期时间值; 否则,0.1

喜欢的东西

DECLARE @Table TABLE(
    [Time] VARCHAR(50) 
) 

INSERT INTO @Table SELECT '10:00:00' 
INSERT INTO @Table SELECT '12:00:00' 
INSERT INTO @Table SELECT 'Absent' 
INSERT INTO @Table SELECT '14:00:00' 
INSERT INTO @Table SELECT 'Holiday' 

SELECT *, 
     ISDATE(Time), 
     case when ISDATE(time) != 0 then 'Present' else time end 
FROM @Table