Sql server 在今天之前删除列的案例语句';日期
我试图使用Sql server 在今天之前删除列的案例语句';日期,sql-server,Sql Server,我试图使用case语句来更改日期早于今天的任何行,并将这些行作为'值返回,然后将日期格式化为dd/MM/yyyy hh:MM 我试过使用这个: CASE WHEN AppointmentDate1 > getdate() THEN ' ' WHEN AppointmentDate1 IS NULL THEN ' ' ELSE AppointmentDate1 END AS [Appointment] 但当我运行查询时,会收到以下错误消息: 味精241,第16级,状
case
语句来更改日期早于今天的任何行,并将这些行作为'
值返回,然后将日期格式化为dd/MM/yyyy hh:MM
我试过使用这个:
CASE
WHEN AppointmentDate1 > getdate() THEN ' '
WHEN AppointmentDate1 IS NULL THEN ' '
ELSE AppointmentDate1
END AS [Appointment]
但当我运行查询时,会收到以下错误消息:
味精241,第16级,状态1,第1行从字符串转换日期和/或时间时,转换失败
我该怎么做?那么,我如何更改为所需的格式?(
AppointmentDate1
当前为SQL格式,例如'2019-05-22 10:00:00'
)Acase
表达式返回单个值。它计算所有return子句并根据优先级选择一个。日期的优先级高于字符串,因此您的失败是因为'
(空格)无法转换为日期
如果希望结果为日期,请使用NULL
。在这种情况下,您可以执行以下操作:
(CASE WHEN AppointmentDate1 < getdate() THEN AppointmentDate1
END) AS Appointment
(当AppointmentDate1
如果需要字符串,请转换为字符串:
(CASE WHEN AppointmentDate1 < getdate()
THEN CONVERT(VARCHAR(10), AppointmentDate1, 121)
ELSE '' -- I would just use an empty string
END) AS [Appointment]
(任命日期1
我选择了风格121。你可能会有另一种你喜欢的风格。或者使用FORMAT()