Bes*_*ska 9 sql t-sql sql-server
我试图找出一种优雅的方式从文本列中获取具有类似"YYYYMMDD"的数据的日期...所以我们可能会在列中看到"20060508"作为值,我希望能够从查询返回为日期(2006年5月8日).
我确信如果有足够的时间,我可以一起破解一些东西,但我想到的方法看起来非常糟糕,我怀疑有一种方法可以在一个查询中优雅地完成.
有什么建议?
mar*_*c_s 25
这已经是一个有效的日期 - ISO-8601格式 - 只需使用:
SELECT CAST('20060508' AS DATETIME)
Run Code Online (Sandbox Code Playgroud)
或者:
SELECT CONVERT(DATETIME, '20060508', 112)
Run Code Online (Sandbox Code Playgroud)
这应该做得很好!
为了获得"2006年5月8日"显示,使用日期转换样式107执行另一个转换为varchar:
SELECT CONVERT(VARCHAR(25), CAST('2006-05-08' AS DATETIME), 107)
Run Code Online (Sandbox Code Playgroud)
有关在MS SQL中进行转换和转换的更多信息,请参见此处