I\'m trying to convert the Date key in my table which is numeric into date time key. My current query is:
SELECT
DATEADD(HOUR,-4,CONVERT(DATETIME,LEFT
You could use STUFF function:
DECLARE @MyTable TABLE([Date] VARCHAR(20));
INSERT @MyTable ([Date])
VALUES ('20130622133644403');
SELECT y.*,
CONVERT(DATE,y.Date_AsDateTime) AS OnlyDate,
CONVERT(TIME(0),y.Date_AsDateTime) AS OnlyTime
FROM(
SELECT x.[Date] AS Date_AsVarChar, CONVERT(DATETIME, STUFF(STUFF(STUFF(STUFF(x.[Date],9,0,' '),12,0,':'),15,0,':'),18,0,'.')) AS Date_AsDateTime
FROM @MyTable x
) y;
Results:
Date_AsVarChar Date_AsDateTime OnlyDate OnlyTime
-------------------- ----------------------- ---------- --------
20130622133644403 2013-06-22 13:36:44.403 2013-06-22 13:36:44
Solution:
SELECT
CONVERT(DATE,y.Date_AsDateTime) AS OnlyDate,
CONVERT(TIME(0),y.Date_AsDateTime) AS OnlyTime
FROM(
SELECT [Object], MsgId, Parms,
CONVERT(DATETIME, STUFF(STUFF(STUFF(STUFF(x.[Date],9,0,' '),12,0,':'),15,0,':'),18,0,'.')) AS Date_AsDateTime
FROM JnlDataSection
) A
WHERE MsgID = '325'
-- SUBSTRING(Parms,1,6) = 'V40449' is not SARG-able
AND Parms LIKE 'V40449%'
ORDER BY DATE DESC;