unix_timestamp(some_date)
を実行すると、内部でsome_date
がUTCに変換されますが、some_date
はすでにUTCに変換されています。現在のUnixタイムスタンプを取得する方法はありますか?UTC時刻からMySQLのUnixタイムスタンプを取得するには?
編集:UTC時刻からのUnixタイムスタンプが必要です。
unix_timestamp(some_date)
を実行すると、内部でsome_date
がUTCに変換されますが、some_date
はすでにUTCに変換されています。現在のUnixタイムスタンプを取得する方法はありますか?UTC時刻からMySQLのUnixタイムスタンプを取得するには?
編集:UTC時刻からのUnixタイムスタンプが必要です。
最初CONVERT_TZ
を使用してローカルタイムゾーンにUTCからそれを変換することができるはずです。
UNIX_TIMESTAMP(CONVERT_TZ(some_date, '+00:00', @@global.time_zone))
も参照してください:10.6. MySQL Server Time Zone Support
あなたが好きUTCの日時値からMySQLでのUNIXタイムスタンプを取得することができますそう:
SELECT
UNIX_TIMESTAMP(CONVERT_TZ("some_date", '+00:00', @@session.time_zone))
FROM `table_name`
私はここでチートシートを作った:Should MySQL have its timezone set to UTC?
これは私のために正常に動作します:
UNIX_TIMESTAMP(CONVERT_TZ("some_date", '+00:00', 'SYSTEM'))
ここでそれを行うのカップル他の方法です:
SELECT UNIX_TIMESTAMP(myDate)+UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP(UTC_TIMESTAMP())
FROM myTable
SELECT UNIX_TIMESTAMP(myDate)-TIMESTAMPDIFF(SECOND, NOW(), UTC_TIMESTAMP())
FROM myTable
は、