gpt4 book ai didi

sql - 使用 DateTime 列的 CASE 语句

转载 作者:行者123 更新时间:2023-12-04 19:13:38 24 4
gpt4 key购买 nike

我的查询中有一个日期时间列,我想在这个查询中做一个 CASE。

如果 DateDelivered 列不为空,则显示日期,否则显示字符串 'Pendent'我该怎么做?

CASE WHEN DateDelivered IS NOT NULL THEN DateDelivered ELSE 'Pendent' END AS DateDelivered 2

我收到了这个错误

Conversion failed when converting date and/or time from character string.

整个查询

SELECT  San_Imovel.Imovel_Id ,
San_Chave.DataHoraPegou ,
CASE WHEN San_Chave.DateDelivered IS NOT NULL THEN San_Chave.DateDelivered
ELSE ISNULL(CAST(San_Chave.DateDelivered AS VARCHAR), 'Pendent')
END AS DateDelivered2 ,
San_Usuario.NomeCompleto + ' - ' + sc.Apelido AS Nome ,
San_Cliente.NomeCompleto AS NomeCliente ,
San_Credenciada.Apelido ,
San_Cliente.Cliente_Id ,
San_ChaveImovel.QuantidadeChave
FROM San_ChaveImovel
JOIN San_Chave ON San_ChaveImovel.Chave_Id = San_Chave.Chave_Id
JOIN San_Credenciada ON San_Chave.Credenciada_Id = San_Credenciada.Credenciada_Id
JOIN San_Imovel ON San_ChaveImovel.Imovel_Id = San_Imovel.Imovel_Id
JOIN San_Usuario ON San_Chave.Usuario_Id_Responsavel = San_Usuario.Usuario_Id
JOIN San_Credenciada sc ON San_Usuario.Credenciada_Id = sc.Credenciada_Id
JOIN San_Cliente ON San_Chave.Cliente_Id = San_Cliente.Cliente_Id

最佳答案

您正在尝试将“Pendent”转换为 DateTime,因为它会将所有数据转换为相同的数据类型。此外,如果您只是检查 NULL,则可以使用 ISNULL 或 COALESCE。试试这个:

ISNULL(CAST(DateDelivered AS VARCHAR), 'Pendent')

您还可以指定 DateDelivered 的格式:

ISNULL(CONVERT(VARCHAR, DateDelivered, 101), 'Pendent')

查看 101 here 的更多选项.

关于sql - 使用 DateTime 列的 CASE 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10337806/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com