我想将int转换为日期格式,值的格式为ddmmyy
280118
select cast( '280118' as date)
这会产生2028-01-18
,
我使用子串
找到了Stack的方法select convert(date, SUBSTRING('280118',1,2)+'/'+
SUBSTRING('280118',3,2)+'/'+SUBSTRING('280118',5,2),3)
预期结果2018-01-28
。
是否有任何简单的替代方法可以在SQL server 2016
中实现此功能,如果您可以从版本2012
开始建议,这也非常有用。
我已经看过帖子,因为这已经被多次回答了,我希望看到任何更简单的方法来回答这个问题。
感谢您的意见和建议
答案 0 :(得分:1)
你可以在这里使用东西和转换的格式选项来相当容易地做到这一点。这当然假设所有日期都将使用默认世纪。在几十年内,除非MS在2个数字年内改变其默认逻辑几个世纪,否则这将不再是正确的十年。
declare @YourDate varchar(10) = '280118'
select convert(date, stuff(stuff(@YourDate, 3, 0, '/'), 6, 0, '/'), 3)