我与第三方数据库,该数据库(无论何种原因)内部存储格式的日期的工作yyyymm如201212用于Dec 2012作为INT。
yyyymm
201212
Dec 2012
INT
有没有简单的方法可以将其转换为SQL ServerDateTime类型?
DateTime
我尝试将上面的内容手动转换为长度为6的字符序列,并将其与“ 01”连接起来以获取给定月份的开始,如下所示:
(CONVERT(char(6), Period) + '01')`
然后将其包装在datetime转换中:
datetime
CONVERT(datetime, (CONVERT(char(6), Period) + '01'))
但这似乎抛出了;
从字符串转换日期和/或时间时转换失败
谁能告诉我我在做什么错?
谢谢!:)
您需要使用正确的参数。这是msdn图表http://msdn.microsoft.com/en- us/library/ms187928.aspx
就您的情况而言,我认为您需要附加‘01’并使用它
declare @val VARCHAR(8) SET @val = '201212' set @val = @val + '01' print CONVERT(DATETIME, @val, 12)
ISO格式为12,格式为yymmdd或yyyymmdd