我的SQL Server 2008表中有一个TimeStamp (varchar(50),null)
列,其名称TimeStamp
看起来很容易引起误解。我的意思是它似乎是一个数据类型时间戳,但它是varchar
。
但它的值类似于201403240004
,看起来像是约会。我可以将其转换为日期并使用吗?
阅读online timestamp
只是一系列数字,与日期和时间无关。
答案 0 :(得分:3)
你可以。
假设格式为YYYYMMDDHHmm,一种简单的方法是:
SELECT CONVERT(DATETIME,
SUBSTRING([TimeStamp],1,4)+'-'+SUBSTRING([TimeStamp],5,2)+'-'
+SUBSTRING([TimeStamp],7,2)+' '+SUBSTRING([TimeStamp],9,2)+':'
+SUBSTRING([TimeStamp],11,2)+':00.000')
FROM Table
这将采用这个"时间戳"并首先将其转换为SQL可读的日期时间字符串,例如,它将是2014-03-24 00:04:00.000
。然后,它将很容易转换为日期时间。
答案 1 :(得分:2)
是的,您的列应该可以转换为DATETIME,但如果CONVERT()支持该格式,您可能必须自己进行转换。
我无法告诉您示例时间格式究竟是什么。
如果是YYYYMMDDHHMM他们
SELECT CONVERT(DATETIME,LEFT('201403240004',8),112)
+CONVERT(DATETIME,SUBSTRING('201403240004',9,2)+ ':' + RIGHT('201403240004',2)+':00' ,108)