Sybase SQL:将字符串转换为日期和时间

时间:2015-02-10 10:45:52

标签: string datetime sybase

Sybase SQL将字符串转换为DateTime帮助:

我将日期和时间以字符串格式存储在表格中('yyyymmddhhnnss')。我需要选择日期和时间格式。

例如: 字符串价值:'20141228092818' 预计将返回:'2014年12月28日09:28:18'

字符串值:'20141121132810' 预计将返回:'2014年11月21日01:28:10''

感谢帮助...

2 个答案:

答案 0 :(得分:3)

您指定的输出格式与任何Sybase标准样式都不完全相同(请参阅Sybase documentation for the convert function)。

它非常接近109风格,只是日期和月份相反,并且当时没有前导零。要进行此转换,您需要将字符串转换为Sybase可以理解的格式,并且可以转换为日期时间(例如yyyymmdd hh:mm:ss),将其转换为日期时间,然后将其转换回字符串使用109风格。

示例:

create table #test (test varchar(255))

insert #test select '20141228092818'
insert #test select '20141121132810'

select
    convert(varchar(255),
        convert(datetime,
            left(test, 8) + ' ' +
            substring(test, 9, 2) + ':' +
            substring(test, 11, 2) + ':' +
            substring(test, 13, 2)
        ),
    109)
from #test

输出:

Dec 28 2014  9:28:18:000AM
Nov 21 2014  1:28:10:000PM

答案 1 :(得分:0)

谢谢托比。它奏效了。

SELECT CONVERT(datetime,SUBSTRING(MyField, 5, 2 ) + '/' + SUBSTRING(MyField, 7, 2) + '/' + SUBSTRING(MyField, 1, 4 ) + ' ' + SUBSTRING(MyField, 9, 2 ) + ':' + SUBSTRING(MyField, 11, 2 ) + ':' + SUBSTRING(MyField, 13, 2 )) TransactDateTime

28/12/2014 09:28:18 AM

21/11/2014 01:28:10 PM