IsNumeric时间值问题

时间:2010-03-04 07:24:27

标签: sql-server

表1

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'中显示错误

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

需要查询帮助

1 个答案:

答案 0 :(得分:3)

尝试使用ISDATE

  

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

这样的东西
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