如何在SQL Case函数内转换日期格式

时间:2018-07-25 20:08:30

标签: mysql sql

我正在尝试在此查询中转换日期。我已经尝试在脚本中的多个位置使用“转换”功能,但仍然无法正常工作。这是脚本的示例。

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),但无法转换。

3 个答案:

答案 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)