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

问题描述:

的Sybase SQL字符串转换为DateTime帮助:的Sybase SQL:字符串转换为日期和时间

我有日期和存储在表中的字符串格式(“yyyymmddhhnnss”)的时间。我需要选择它们以日期和时间格式。

例如: 字符串值: '20141228092818' 有望回归:'28 2014年12月上午09点28分18秒”

字符串值: '20141121132810' 有望回归:'21 2014年11月01 :28:10 PM”

欣赏帮助......

+0

可能重复[如何将字符串转换为在Sybase日期](http://*.com/questions/56303/how-to-convert-a-string-to-a-date-in-sybase) – 2015-02-10 15:42:58

您指定的输出格式是不完全一样的任何的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 

由于托比。有效。

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分十八秒

21/11/2014下午1时28分10秒