sql-servert-sqldatetimeutcsqldatetime

How to convert CST to UTC in MSSQL


Is it possible to convert CST to UTC in MSSQL?

For example:

convert Thu May 13 11:14:19 CST 2021 to 2021-05-13 11:14:19.000


Solution

  • On the fly conversion:

    DECLARE @CstTime    varchar(30) = 'Thu May 13 11:14:19 CST 2021'
    
    DECLARE @MonthList  varchar(35) = 'JanFebMarAbrMayJunJulAugSepOctNovDec'
    DECLARE @Month      varchar( 2)         
    DECLARE @Year       varchar( 4) 
    ;
    
    SET     @CstTime    =   STUFF(@CstTime,1,4,'')
    SET     @Month      =   RIGHT('00' + LTRIM((CHARINDEX(LEFT(@CstTime, 3), @MonthList)+2)/3), 2)
    SET     @CstTime    =   REPLACE(@CstTime, ' CST ', '')
    SET     @CstTime    =   STUFF(@CstTime,1,4,'-'+@Month+'-')
    SET     @Year       =   RIGHT(@CstTime, 4)
    SET     @CstTime    =   REPLACE(@CstTime, @Year, '')
    SET     @CstTime    =   @Year + '-' + @CstTime
    
    SELECT  @CstTime