2016-09-24 1 views
0

私は、クエリの下に実行し、なぜMySqlがPMではなくAMで時刻を返すのですか?

SELECT DATE_FORMAT(CURRENT_TIMESTAMP, '%Y-%m-%d %h:%i:%s %p') 

それは

2016-09-24 05:16:53 AM 

としてタイムスタンプを返しますが、それは私のPCで午前5時16分53秒PMです。

私はタイムゾーンが問題になる可能性がありますどのようなSYSTEM

SELECT @@global.time_zone; 
SELECT @@session.time_zone; 

に設定されていることを確認するだけでなく、クエリの下に実行してきましたか?私は2時間古いレコードを取得したいが、この問題のために私は立ち往生している。続き

はNOWが12時間遅れている。これは、として正しく動作しません、

SELECT * FROM myTable WHERE NOW() < DATE_ADD(my_field_time,INTERVAL 2 HOUR) 

私のクエリです。

更新: MySQLサーバが私のPC上で、バージョン5.5.28、システムのタイムゾーンは、MySQLサーバによって報告され、OS:Windowsの10

+0

mysqlサーバはどこですか?あなたのPCで?どのようなオペレーティングシステムとMySQLのバージョンを使用していますか?あなたのPCのタイムゾーンは何ですか?また、mysqlによって報告されるタイムゾーンは何ですか?あなたの質問を詳細で編集してください。 –

+0

@sikander SELECT TIMEDIFF(CURRENT_TIMESTAMP、UTC_TIMESTAMP)を試して、あなたが何を得ているか教えてください –

答えて

1

はあなたを試してみてください。その後、この

SET time_zone = yourtimezone //eg '+05:30' 

をお試しくださいクエリ

SELECT DATE_FORMAT(CURRENT_TIMESTAMP, '%Y-%m-%d %h:%i:%s %p') 

SET time_zone = yourtimezoneは、現在のセッションでのみ動作しますのでご注意ください。

そして、あなたに今、あなたのクエリのための唯一の具体的な回避策が必要な場合は、12時間の背後にある以下のクエリ

SELECT TIMEDIFF(CURRENT_TIMESTAMP, UTC_TIMESTAMP) 

を使用し、セッションのタイムゾーンとUTCの現在の日時に現在の日時の違いを知っていますクエリを試してください

SELECT * FROM myTable WHERE NOW() + INTERVAL 12 HOUR < DATE_ADD(my_field_time,INTERVAL 2 HOUR) 
関連する問題