mssql - 将INT值转换为日期时间

时间:2018-06-06 10:28:47

标签: sql-server

此时我通过修改日期时间获取记录:

WHERE modify_date >= ( SELECT DATEDIFF( s, CONVERT (datetime, ''1990-01-01'', 120), CONVERT (datetime, '+@theDate+', 120) ) )

其中@theDate用于例如:

SET @theDate = '''2018-06-04 00:00:01'''

在第I列中,我有BIGINT值,例如897004800 - 如何将此值转换为清除日期时间?

2 个答案:

答案 0 :(得分:3)

走另一条路。

DECLARE @value BIGINT = 883612800

SELECT DATEADD(SECOND, @value, '1990-01-01')

您的modify_date是您的1990年硬编码日期与实际修改日期之间的秒数。如果要显示实际修改日期,只需将该秒数添加到1990。

答案 1 :(得分:1)

如果你的bigint号码是UNIX时间戳,你应该从' 1970-01-01'开始:

DECLARE @unix_timestamp BIGINT = 883612800
, @start_from DATETIME = '1970-01-01'
SELECT DATEADD(SECOND, @unix_timestamp, @start_from)