我创建了一个查询来获取用户的出生日期并将年份更改为当前年份(不想显示实际出生日期)
CAST(
CAST(YEAR(GETDATE()) as varchar) + '-' +
CAST(MONTH(BirthDay) as varchar) + '-' +
CAST(DAY(BirthDay) as varchar)
as date)
当我对我的表运行它时,我收到以下错误:
Msg 241, Level 16, State 1, Line 1
Conversion failed when converting date and/or time from character string.
我能够让查询在SQLFiddle上正常工作
为了对查询进行故障排除,我逐步检查了每个CAST()
函数,每个函数都单独工作。当我更改GETDATE()
为BirthDay
时,查询正常工作,但这不喜欢使用GETDATE()
. 该函数将运行并获取大约 400 条记录,然后返回上面的错误消息。
有没有办法找到导致这个问题的实际记录,或者有没有更好的方法来获取日期的月份和日期并将其设为 2013 年?