那麼,首先,您需要添加一些字符串魔法來將數據轉換爲DATETIME
的加密格式。而且你還需要使用更少的毫秒(對於DATETIME
,你有3位數字),在SQL Server 2008中,你可以使用DATETIME2
。請嘗試以下操作:
DECLARE @Value VARCHAR(26)
SET @Value = '2007-12-19-11.57.17.366731'
SELECT CONVERT(DATETIME,LEFT(@Value,10) + ' ' +
REPLACE(SUBSTRING(@Value,12,8),'.',':') + '.' +
SUBSTRING(@Value,21,3), 120) ValueAsDatetime,
CONVERT(DATETIME2,LEFT(@Value,10) + ' ' +
REPLACE(SUBSTRING(@Value,12,8),'.',':') + '.' +
RIGHT(@Value,6), 120) ValueAsDatetime2
結果:
╔═════════════════════════╦═════════════════════════════╗
║ ValueAsDatetime ║ ValueAsDatetime2 ║
╠═════════════════════════╬═════════════════════════════╣
║ 2007-12-19 11:57:17.367 ║ 2007-12-19 11:57:17.3667310 ║
╚═════════════════════════╩═════════════════════════════╝
太謝謝你了它的工作原理,但出10萬,我只得到了75000條記錄。我希望少數記錄的格式不是相同的。在75000條記錄之後,日期可能會更奇怪。所以剩餘的記錄沒有填充。我希望我認爲寫入大小寫聲明無論記錄是否以不同格式使其成爲NULL並傳遞剩餘的75000條記錄。 – user2259252 2013-04-08 21:29:50