我试图找出一种优雅的方式来从文本列中获取日期,该文本列中包含诸如“ YYYYMMDD”之类的数据…因此,我们可能希望在该列中看到“ 20060508”作为值,我希望能够从查询返回的日期(2006年5月8日)。
我敢肯定,只要有足够的时间,我就可以将某些东西混在一起,但是我想到的方法似乎很笨拙,而且我怀疑有一种方法可以在单个查询中很好地完成。
有什么建议?
这已经是有效日期-ISO-8601格式-只需使用:
SELECT CAST('20060508' AS DATETIME)
或者:
SELECT CONVERT(DATETIME, '20060508', 112)
那应该做得很好!
为了获得“ 2006年5月8日”的显示,请使用日期转换样式107进行另一个转换为varchar的操作:
SELECT CONVERT(VARCHAR(25), CAST('2006-05-08' AS DATETIME), 107)
有关在MS SQL中进行转换和转换的更多信息,请参见此处