Splitting Date into 2 Columns (Date + Time) in SQL

后端 未结 4 1054
醉酒成梦
醉酒成梦 2020-12-11 06:12

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         


        
4条回答
  •  有刺的猬
    2020-12-11 06:30

    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;
    

提交回复
热议问题