我有一个8位数字的varchar,我需要转换为日期时间。生产编号是从下订单时开始自动生成的编号。例如,生产编号10090203实际上是日期时间2015-10-09 02:03:00。我需要将varchar数字列表转换为日期时间,以便可以将其与日期时间列表进行交叉比较。这是将datetime转换为varchar的方法,但是我不确定如何进行反方向转换。
SELECT RIGHT('0' + CAST(DATEPART(M, table1.coldatetime) AS varchar), 2)
+ RIGHT ('0' + Cast(DATEPART(DD, table1.coldatetime) AS varchar), 2)
+ RIGHT('0' + CAST(DATEPART(HH, table1.coldatetime) AS varchar), 2)
+ RIGHT('0' + CAST(DATEPART(MINUTE, table1.coldatetime) AS varchar), 2)
AS 'CreatedNumber' FROM table1
这应该为您工作:
SELECT
DATEADD(mi,CAST(SUBSTRING(table1.coldatetime,7,2) AS INT),DATEADD(hour,CAST(SUBSTRING(table1.coldatetime,5,2) AS INT),CONVERT(datetime,'2015' + LEFT(table1.coldatetime,2)+SUBSTRING(table1.coldatetime,3,2))))
FROM
table1
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句