4

我正在尝试将两种类型的字符串转换为日期格式,但无法做到其中任何一种。

具有预期输出的有问题的输入字符串如下:


输入1: 20100614191522

预期输出 1: 2010 年 6 月 14 日下午 7:15:22


输入 2: 2010/12

预期输出 2: 12/1/2010 12:00:00 AM


我试过了,

select convert(datetime,'20100614191522',109) 

我尝试使用带有“转换”功能的不同样式参数。但我总是遇到以下错误。 将 VARCHAR 值“20100614191522”显式转换为 DATETIME 字段期间出现语法错误。消息:249,级别:16,状态:1

你能帮帮我吗,如何达到同样的效果。

提前致谢。

4

1 回答 1

3

您尝试的样式参数用于转换datetime data为字符类型。在这里,您要求相反的转换。

输入 1

declare @str varchar(20)
set @str = '20100614191522'
select convert(datetime,substring(@str, 5, 2 ) + '/' + substring(@str, 7, 2 ) + '/' + substring(@str, 1, 4 )  + ' ' + substring(@str, 9, 2 )  + ':' + substring(@str, 11, 2 ) + ':' + substring(@str, 13, 2 ) )

Jun 14 2010  7:15PM

输入 2

declare @str varchar(20)
set @str = '2010/12'
select convert(datetime, @str + '/01')

Dec  1 2010 12:00AM
于 2010-06-22T10:21:28.273 回答