0
桌子上我有一个存储时间戳与微秒级精度像BIGINT列:转换时期为datetime
636453251396217655
636453251398405201
636453251592389899
636453251668326820
我必须建立一个脚本,如果该日期比一周老,行必须移动到另一个表。
我试图转换为日期使用:
CREATE FUNCTION [dbo].[UNIXToDateTime] (@timestamp bigint)
RETURNS datetime
AS
BEGIN
DECLARE @ret datetime
SELECT @ret = DATEADD(second, @timestamp, '1970/01/01 00:00:00')
RETURN @ret
END
,并像使用:
select dbo.UNIXToDateTime(636453251396217655)
但由于BIGINT的我的脚本崩溃的原因是:
算术溢出错误时int数据中的表达式转换 type
我可以失去精度,重要的是日期部分是SQL过滤器的主要部分。
演示:http://sqlfiddle.com/#!6/24f05/1
[转换Unix纪元时间戳TSQL日期时间](https://stackoverflow.com/questions/14507649/convert-unix-epoch-timestamp-to-tsql-datetime) – Joe
可能的复制@ DavidG他们是有效的,从一个实时系统写的高精度检查他们在https://www.epochconverter.com/ –
@DavidG yep,在微秒,如问题的第一行所述:-) –