Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

CASE statement using DateTime column

Tags:

sql

t-sql

I have a datetime column in my query and I want to do a CASE in this query.

IF the column DateDelivered is not null, then shows the date, else, show the string 'Pendent' how can I do that ?

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

I got this error

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

Whole query

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  
like image 664
Lucas_Santos Avatar asked Mar 26 '26 07:03

Lucas_Santos


1 Answers

You're trying to convert 'Pendent' to be a DateTime, because it's going to convert all of the data to be the same data type. Also, if you're just checking for NULL, you can use ISNULL or COALESCE. Try this:

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

You can also specify your format for DateDelivered:

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

See more options for 101 here.

like image 69
zimdanen Avatar answered Mar 27 '26 21:03

zimdanen



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!