【发布时间】:2017-06-07 12:41:00
【问题描述】:
我正在运行查询以更改 SQL Server 2016 中的一些返回数据,但出现转换错误(从字符串转换日期和/或时间时转换失败)。
SELECT jobs.name,
CASE WHEN jact.start_execution_date IS NULL THEN 'No Execution'
ELSE jact.start_exeuction_date
END AS start_execution_date
FROM msdb.dbo.sysjobactivity jact
INNER JOIN msdb.dbo.sysjobs jobs
ON jact.job_id = jobs.job_id
start_execution_date 列是 DATETIME 类型。此列的日期时间格式为 (YYYY-MM-DD HH:MM:SS.mmm) 或 NULL。我什至尝试使用 COALESCE 使代码更易于阅读,但这也不起作用并给出了同样的错误。在查看设置到错误点的返回结果时,它在该列中具有 NULL 的第一行失败。我做错了什么/没有考虑?
SELECT COALESCE(jact.start_execution_date, 'No Execution')
【问题讨论】:
-
您不能将
case与不同的返回类型一起使用..varchar 和日期在您的情况下。
标签: sql tsql sql-server-2016