我有一个数据库,由于某种原因,日期像 1yymmdd 一样被放入其中。我被要求在查询中创建一个字段,将这个日期增加 30 天。我已通过以下方式将日期转换为可读格式:
SUBSTRING(Datefield, 4, 2) + '/' + SUBSTRING(Datefield, 6, 2)
+ '/' + SUBSTRING(Datefield, 2, 2) AS LookLikeDate
我把它放在一个视图中,然后尝试:
DATEADD(dd,30, CONVERT(datetime, v.[LookLikeDate], 103)
我不断收到一条错误消息
将 varchar 数据类型转换为 datetime 数据类型导致值超出范围。
然后我尝试在我的 View 语句中定义,以便该字段从一开始就是日期时间:
CONVERT(datetime, SUBSTRING(Datefield, 4, 2) + '/'
+ SUBSTRING(Datefield, 6, 2) + '/'
+ SUBSTRING(Datefield, 2, 2), 103) AS LookLikeDate
当我在该定义中遇到错误时,我根本无法使用视图,我将 datetime 更改为 Char(8),这给了我之前遇到的相同的 varchar 错误。
我是不是搞错了,有没有办法将这些日子添加到这种荒谬的日期格式中?