に変換:MySQLのUTCの日時は、現在のUNIXタイムスタンプを返し、これらの両方を正しくUNIXタイムスタンプ
SELECT UNIX_TIMESTAMP(LOCALTIMESTAMP()); #MySql
echo time(); //PHP
しかし、私は(ないLOCALTIMESTAMPs)私のデータベース内UTC_TIMESTAMPsを格納しています。
MySQLを使用してUNIXタイムスタンプにUTC datetimeを変換するにはどうすればよいですか?
に変換:MySQLのUTCの日時は、現在のUNIXタイムスタンプを返し、これらの両方を正しくUNIXタイムスタンプ
SELECT UNIX_TIMESTAMP(LOCALTIMESTAMP()); #MySql
echo time(); //PHP
しかし、私は(ないLOCALTIMESTAMPs)私のデータベース内UTC_TIMESTAMPsを格納しています。
MySQLを使用してUNIXタイムスタンプにUTC datetimeを変換するにはどうすればよいですか?
LOCALTIMESTAMP()はNOW()の同義語です。だからあなたが本当に求めているのは、現在の時刻をGMTに変換してから、dbに保存するためのunixタイムスタンプに変換する方法です。だから、これは動作します:よう
SELECT UNIX_TIMESTAMP(CONVERT_TZ(NOW(), @@global.time_zone, 'GMT'));
をさておき、それはUNIXタイムスタンプではなく、データベースの日付と時刻の列を使用することが常により良いです。クエリを実行して結果を表示するのがはるかに簡単になります。
更新:あなたがあなたの考えを得ていると確信していますか? UNIX_TIMESTAMP returns a UTC based seconds since the UNIX epoch。 MySQL DateTime typeは返されません。実際のUTC DateTimeインスタンスを使用している場合は、データベースのDateTimeカラムに直接入れることができ、仲介者としてUNIX_TIMESTAMPを使用する必要はありません。あなたは実際にどのタイプのものが現地時間にありますか?
私は自分のテーブルにタイムスタンプを保存していません。 UNIX_TIMESTAMP()は、テーブルのdatetimeカラムに格納するdatetimeを返します。私はutc datetimeからunixタイムスタンプを取得する方法を知っています。 – Emmett
全く投票しませんでしたが、DBのエポックタイムスタンプは、私が働いている多くのスキーマのための多数の日付算術および管理の問題を解決しました。私は必ずしも彼らから恥ずかしがりません。 – Xailor