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

2023-11-23

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

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

需要将输入日期时间转换为 unix 时间戳。

Tried CONVERT( timestamp, @dt) and 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());
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 MS SQL 存储函数中将日期时间转换为时间戳 的相关文章

随机推荐