表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'中显示错误
如何根据我的要求修改我的查询
需要查询帮助
答案 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