有一个存储的函数,可以从表更新触发器中调用。像这样的SMT:
FUNCTION [dbo].[DateTime2ToBigInt](@dt DATETIME2(7))
RETURNS BIGINT
需要将输入日期时间转换为Unix时间戳。
尝试过CONVERT( timestamp, @dt)
,CAST(@dt AS TIMESTAMP)
但都导致
“不允许从数据类型datetime2到时间戳的明确转换。”
当然可以用数学来做,但是我不敢相信,mssql没有直接转换功能
CREATE FUNCTION UNIX_TIMESTAMP (
@ctimestamp datetime
)
RETURNS integer
AS
BEGIN
/* Function body */
declare @return integer
SELECT @return = DATEDIFF(SECOND,{d '1970-01-01'}, @ctimestamp)
return @return
END
尝试功能:
SELECT UNIX_TIMESTAMP(GETDATE());
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句