Microsoft SQL Server 2012以降では、単一のselect文でdatetime値をUnixタイムスタンプに変換できますか?もしそうなら、それはどうやって行えますか? UNIXタイムスタンプに日時を変換DatetimeをUnixタイムスタンプに変換する
答えて
は簡単ですが、次のように入力しやすいエラーが含まれます。
@datetimeは、変換したい日時の値である@timestamp=DATEDIFF(second,{d '1970-01-01'},@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());
ありがとう、私はこの作品が表示されます。 –
簡素化しない理由:DATEDIFF(SECOND、 '1970-01-01'、@ctimestamp)を選択しますか?またはDATEDIFFを選択します(秒、変換(DATETIME、 '1970-01-01'、121)、@ctimestamp) 日付のローカライズ? – onupdatecascade
Khaledとonupdatecascadeに感謝します。両方のソリューションが動作します。私は同意する、あなたの1つはより簡単であり、機能の作成を必要としない。 –
をあなたはあなたの質問への答えはイエスである、これまで – Ram
を試してみましたが、何を追加してください。あなたの実際の質問は何ですか? –
私はMichaelの質問を編集しました。 –