我正在尝试在此查询中转换日期。我已经尝试在脚本中的多个位置使用“转换”功能,但仍然无法正常工作。这是脚本的示例。
SELECT client as ClientName,
CASE
WHEN address.startdate_d is null THEN client.sysadmindata_d ELSE address.startdate_d
END
AS BeginDate
FROM client
我尝试使用CONVERT(varchar, echo.er_address.startdate_d, 101)
,但无法转换。
答案 0 :(得分:2)
尚不清楚,但我想您想将整个case语句包装在您的convert中:
CONVERT(varchar, CASE WHEN .... END, 101) as BeginDate
这会将case表达式的结果转换为格式为101的varchar。
答案 1 :(得分:0)
您想使用COALESCE()
而不是CASE
:
CONVERT(varchar(255), COALESCE(address.startdate_d, client.sysadmindata_d), 101)
还要注意varchar()
上的长度。 SQL Server在不同的上下文中具有不同的默认长度。依赖默认值是一种不好的做法;你应该很明确。
答案 2 :(得分:-2)
尝试
CONVERT(varchar, echo.er_address.startdate_d, 1)