将Datetime转换为Unix时间戳

时间:2015-12-24 16:21:03

标签: sql sql-server datetime sql-server-2012 unix-timestamp

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

1 个答案:

答案 0 :(得分:26)

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

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

其中@datetime是您要转换的日期时间值。 {d'yyyy-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());