UNIX_TIMESTAMP in SQL Server

后端 未结 8 1951
陌清茗
陌清茗 2020-12-01 15:45

I need to create a function in SQL Server 2008 that will mimic mysql\'s UNIX_TIMESTAMP().

Thanks in advance !

8条回答
  •  遥遥无期
    2020-12-01 16:31

    Necromancing.
    The ODBC-way:

    DECLARE @unix_timestamp varchar(20)
    -- SET @unix_timestamp = CAST({fn timestampdiff(SQL_TSI_SECOND,{d '1970-01-01'}, CURRENT_TIMESTAMP)} AS varchar(20)) 
    
    IF CURRENT_TIMESTAMP >= '20380119' 
    BEGIN 
        SET @unix_timestamp = CAST
        (
            CAST
            (
                {fn timestampdiff(SQL_TSI_SECOND,{d '1970-01-01'}, {d '2038-01-19'})} 
                AS bigint
            )  
            + 
            CAST
            (
                {fn timestampdiff(SQL_TSI_SECOND,{d '2038-01-19'}, CURRENT_TIMESTAMP)}
                AS bigint
            ) 
        AS varchar(20)
        ) 
    END 
    ELSE 
        SET @unix_timestamp = CAST({fn timestampdiff(SQL_TSI_SECOND,{d '1970-01-01'}, CURRENT_TIMESTAMP)} AS varchar(20))
    
    PRINT @unix_timestamp
    

提交回复
热议问题