web-dev-qa-db-ja.com

日時をUnixタイムスタンプに変換する

Microsoft SQL Server 2012以降では、単一の選択ステートメントで日時値をUnixタイムスタンプに変換できますか?もしそうなら、どのようにそれを行うことができますか?

9
O A

Peter Halaszが T-SQL DateTime to Unix Timestamp で言及しているように:

日時を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());
28
khaled4vokalz