将Unix时间戳转换为实际的日期和时间

时间:2015-12-14 18:57:58

标签: sql

是否有任何sql命令可以插入到所述查询中,因此我可以转换时间戳。虽然它可以单独完成,我已经看到目前为止,但我试图找到一些我可以添加到所述查询,因为这将是有帮助的,因为我也使用其他查询来检索数据。如果您有任何其他问题,请提及。增加:rating_timestamp包含时间和日期。

SELECT rating_id,
       rating_postid,
       rating_posttitle,
       rating_rating,
       rating_timestamp,
       rating_username,
       rating_userid
FROM wp_ratings;

2 个答案:

答案 0 :(得分:1)

在日期算术的情况下,指定您正在使用的DBMS尤其重要 - Oracle的数学与Postgres的数学不同。数学不同于SQL Server的数学与MySQL的数学不同......

这假定您使用的是SQL Server。由于没有内置命令来执行此转换,因此您需要创建自己的函数来执行此操作。下面的函数采用UNIX / Linux时间戳并将其转换为SQL Server日期时间。

CREATE FUNCTION dbo.fn_ConvertToLocalDateTime (@unixdate BIGINT)
RETURNS DATETIME
AS
BEGIN
    DECLARE @UTCTimeOffset BIGINT
           ,@LocalDatetime DATETIME;
    SET @UTCTimeOffset = DATEDIFF(second, GETUTCDATE(), GETDATE())
    SET @LocalDatetime = DATEADD(second, @unixdate + @UTCTimeOffset, CAST('1970-01-01 00:00:00' AS datetime))
    RETURN @LocalDatetime
END;
GO

答案 1 :(得分:1)

我之前非常关注Sql版本。这对我很有用。

FROM_UNIXTIME(rating_timestamp,'%h:%i:%s%D%M%Y')