Sql 将yyyymmdd、hhmmss和sss列合并到datetime
表IFCD结构如下:Sql 将yyyymmdd、hhmmss和sss列合并到datetime,sql,sql-server,tsql,datetime,Sql,Sql Server,Tsql,Datetime,表IFCD结构如下: tdate ttime updatemillisec 20140730 093014 500 ... 如何将列合并为一个名为tdatetime的列,格式为yyyy-mm-dd hh:mm:ss.mmm 我的答覆是: SELECT CAST(LEFT(tdate, 4)+'-'+substring(tdate, 5, 2)+'-'+RIGHT(tdate, 2)+' '+ LEFT(ttime, 2)+':'+sub
tdate ttime updatemillisec
20140730 093014 500
...
如何将列合并为一个名为tdatetime的列,格式为yyyy-mm-dd hh:mm:ss.mmm
我的答覆是:
SELECT CAST(LEFT(tdate, 4)+'-'+substring(tdate, 5, 2)+'-'+RIGHT(tdate, 2)+' '+
LEFT(ttime, 2)+':'+substring(ttime, 3, 2)+':'+RIGHT(ttime, 2)+'.'+
CAST(updatemillisec AS varchar) AS DateTime)
请试试这个。您必须将ttime和UPDATEMILISEC连接起来,并将其转换为以下格式
hh:mm:ss.MMM
。使用该格式后,以YYYYMMDD hh:mm:ss.MMM
DECLARE @Table TABLE (tdate VARCHAR(10),
ttime VARCHAR(10),
updatemillisec VARCHAR(10))
INSERT INTO @Table
VALUES('20140730', '093014', '500')
SELECT CAST(
( tdate + ' '
+ LEFT(ttime, 2) + ':'
+ SUBSTRING(ttime, 3, 2) + ':'
+ RIGHT(ttime, 2) + '.'
+ updatemillisec) AS DATETIME
) AS tDateTime
FROM @Table
作为提示:函数,再加上一些子字符串()和连接。当你说“解决方案:…”时,这是否意味着这就是你提出的解决方案?如果是这样的话,你应该把它作为一个答案发布并接受它。
DECLARE @T TABLE (tdate VARCHAR(10)
,ttime VARCHAR(10)
,Updatemillisec VARCHAR(10))
INSERT INTO @T
VALUES ('20140730','093014','500')
SELECT CONVERT(VARCHAR(25), LEFT(tdate, 4) + '-' +
SUBSTRING(tdate, 5, 2) + '-' +
RIGHT(tdate, 2) + SPACE(1) +
LEFT(ttime, 2) + ':' +
SUBSTRING(ttime, 2, 2) + ':' +
RIGHT(ttime, 2) + '.' +
Updatemillisec, 109)
FROM @T