SQL将INT转换为datetime

时间:2012-05-22 18:51:01

标签: sql datetime int

我有1323648000,这是int(10)。我需要能够将其转换为某种日期格式。像dd / hh / yy hh:mm:ss。我在这里尝试了几个例子,但我似乎无法让它工作。我试图把它作为varchar(10)投射并转换但没有。 Excel还输出########。这个号码不正确吗?

SELECT
engine4_openid_statusstats.openidstat_id,
CONVERT(datetime,CAST(engine4_openid_statusstats.openidstat_time AS varchar(10),3),
engine4_openid_services.openidservice_id,
engine4_openid_services.openidservice_name
FROM
engine4_openid_statusstats ,
engine4_openid_services

3 个答案:

答案 0 :(得分:5)

这看起来像是一个基于时代的Unix时间戳,即自1970年以来的秒数。

转换是特定于RDBMS的。使用SQLITE,你可以做到

select datetime( 1323648000, 'unixepoch' );

并且产生2011-12-12 00:00:00(GMT)。

检查您的RDBMS文档以了解日期时转换功能。

答案 1 :(得分:2)

如果确实存储为Epoch Time(它看起来像是),那么这是自1970年1月1日以来的秒数。您可以通过将秒添加到此日期将其转换为日期时间。

SELECT DATEADD(SS, 1323648000, '01/01/1970')

答案 2 :(得分:1)

TO_CHAR(column_name, 'DD/MM/YYYY hh:mm:ss')