我正在尝试将两种类型的字符串转换为日期格式,但是无法执行其中任何一个。
有问题的输入字符串和预期输出如下:
<小时/>输入1:20100614191522
预期输出 1:2010 年 6 月 14 日 7:15:22 PM
<小时/>输入 2:2010/12
预期输出 2:2010 年 12 月 1 日 12:00:00 AM
<小时/>我尝试过,
select convert(datetime,'20100614191522',109)
我尝试使用“转换”功能使用不同的样式参数。但我总是收到以下错误。 将 VARCHAR 值“20100614191522”显式转换为 DATETIME 字段期间出现语法错误。 消息:249,级别:16,状态:1
你能帮我看看如何实现同样的目标吗?
提前致谢。
最佳答案
您尝试过的样式参数用于将日期时间数据
转换为字符类型。这里你要求相反的转换。
输入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
关于datetime - 需要帮助将 Sybase 中的字符串转换为日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3090930/