小编典典

T-SQL日期时间转换

sql

我与第三方数据库,该数据库(无论何种原因)内部存储格式的日期的工作yyyymm201212用于Dec 2012作为INT

有没有简单的方法可以将其转换为SQL ServerDateTime类型?

我尝试将上面的内容手动转换为长度为6的字符序列,并将其与“ 01”连接起来以获取给定月份的开始,如下所示:

(CONVERT(char(6), Period) + '01')`

然后将其包装在datetime转换中:

CONVERT(datetime, (CONVERT(char(6), Period) + '01'))

但这似乎抛出了;

从字符串转换日期和/或时间时转换失败

谁能告诉我我在做什么错?

谢谢!:)


阅读 172

收藏
2021-04-14

共1个答案

小编典典

您需要使用正确的参数。这是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

2021-04-14