存在从表更新触发器调用的存储函数。像这样:“
FUNCTION [dbo].[DateTime2ToBigInt](@dt DATETIME2(7))
RETURNS BIGINT
需要将输入日期时间转换为unix时间戳。
尝试CONVERT( timestamp, @dt)
和CAST(@dt AS TIMESTAMP)
,但两者都会导致
“从数据类型datetime2到timestamp的显式转换不是 允许“。
当然可以通过数学做,但我不敢相信,mssql没有直接转换功能
答案 0 :(得分:4)
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());