【发布时间】:2013-07-08 17:19:45
【问题描述】:
考虑以下几点:
SELECT [DOB] = CASE WHEN [DOB] = '-' then 'invalid date' ELSE cast([DOB] as datetime)
END
FROM myTable where myID = 73351
DOB = '-' 时,我收到错误消息:
从字符串转换日期时间时转换失败。
这似乎表明 SQL Server 尝试将 DOB 转换为 datetime,尽管事实上它应该只打印 'invalid date'。
但考虑一下当DOB = '-' 时正确返回'invalid date'。
SELECT [DOB] = CASE WHEN [DOB] = '-' then 'invalid date' ELSE 'valid date'
END
FROM myTable where myID = 73351
当DOB = '-' 时,如何让第一条语句返回'invalid date'?
【问题讨论】:
标签: sql-server sql-server-2005 case