如何在sql case函数中转换日期格式

edqdpe6u  于 2021-06-20  发布在  Mysql
关注(0)|答案(3)|浏览(400)

我正在尝试转换此查询中的日期。我试过在脚本中的多个地方使用“convert”函数,但仍然不起作用。这是脚本的一个示例。

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) 但它不能转换。

wooyq4lh

wooyq4lh1#

尝试

CONVERT(varchar, echo.er_address.startdate_d, 1)
4uqofj5v

4uqofj5v2#

你会想用 COALESCE() 而不是 CASE :

CONVERT(varchar(255), COALESCE(address.startdate_d, client.sysadmindata_d), 101)

还要注意上面的长度 varchar() . SQLServer在不同的上下文中有不同的默认长度。依赖默认值是一种不好的做法;你应该说清楚。

sycxhyv7

sycxhyv73#

这有点不清楚,但我认为你想把整个案例陈述 Package 在你的转换中:

CONVERT(varchar, CASE WHEN .... END, 101) as BeginDate

这将把case表达式的结果转换为格式为101的varchar。

相关问题