一尘不染

将Datetime转换为Unix时间戳

sql

在Microsoft SQL Server
2012或更高版本中,是否可以在单个select语句中将datetime值转换为Unix时间戳?如果是这样,怎么办?


阅读 132

收藏
2021-03-17

共1个答案

一尘不染

正如Peter Halasz在T-SQL DateTime到Unix
Timestamp中
提到的那样:

将日期时间转换为unix时间戳很容易,但是容易出错,键入以下内容:

@timestamp=DATEDIFF(second,{d '1970-01-01'},@datetime)

其中@datetime是要转换的日期时间值。{d“ yyy-mm-dd”表示法是ODBC转义序列。

功能:

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

现在像下面@Ousman一样尝试一下:

SELECT UNIX_TIMESTAMP(GETDATE());
2021-03-17