如何在MS sql存储函数中将日期时间转换为时间戳



有一个从表更新触发器调用的存储函数。像这样:

FUNCTION [dbo].[DateTime2ToBigInt](@dt DATETIME2(7))
RETURNS BIGINT

需要将输入的datetime转换为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());

相关内容

  • 没有找到相关文章

最新更新