2017-04-20 9 views
1

データベースにUnixタイムスタンプのイベントを格納する FROM_UNIXTIMEまたはDATE_ADDでMySQLでdatetimeとして取得する場合、現在の場所のタイムゾーン(UTC + 3: 30)。 FROM_UNIXTIMEが負のタイムスタンプでは機能しないため、DATE_ADD関数を使用する必要があります。どうすればこの問題を解決できますか? ありがとうございました。MySQLのADD_DATEタイムゾーンの問題

ここでは私のクエリです:

SELECT topic, `start`, FROM_UNIXTIME(`start`), DATE_ADD('1970-01-01 1:0:0', INTERVAL `start` SECOND) FROM uzr_event 

そして、ここではそれが答えです: Results

答えて

0

あなたはDATE_ADDに渡している文字列がによって解釈されているので、あなたの結果がオフセットされる理由がありますUTCではなくセッションのタイムゾーン。

あなたはあなたのクエリの前にこれを行うことができ、次のいずれか

SET time_zone = 'UTC'; 

それとも、方程式のうち、セッションのタイムゾーンを残して、ちょうどこの変更することができます。これに

DATE_ADD('1970-01-01 1:0:0', INTERVAL `start` SECOND) 

DATE_ADD(FROM_UNIXTIME(0), INTERVAL `start` SECOND) 
関連する問題