2016-07-11 3 views
0

私は単体テストをしていますが、私はCURTIME()が常に同じ時間を返すようにしたいと思います。MySQLの現在の時刻CURTIME()をテスト用にクエリで変更することはできますか?

私は、タイムゾーンを設定することができます

SET time_zone = 'America/New_York'; 
SELECT CURTIME(); 

をしかし、時間を設定する方法はありますか?私のクエリの

一部は次のとおりです。

(CURTIME() BETWEEN 
TIME(CONVERT_TZ(opening_time, timezone, "UTC")) 
AND TIME(CONVERT_TZ(closing_time, timezone, "UTC"))) 

私はより多くのタイムゾーンと異なる時刻

+3

私は疑いがあります。テストするクエリで静的な時間文字列を使用しないでください。 –

+0

私が持っている: ( TIME(CONVERT_TZ(opening_time、タイムゾーン、 "UTC")) と時間のCURTIME()(CONVERT_TZ(closing_time、タイムゾーン、 "UTC"))) – fico7489

+2

そして、'12 'のようなものを使用:58 :curtime()の代わりに43'' –

答えて

2

CURTIME()をテストしたいので、それを変更する唯一の方法は、直接で、サーバーのタイムゾーンに基づいていますサーバーのタイムゾーン変更:デバッグ目的で

SET time_zone = 'France/Paris'; 

を、私は単にあなたのテストを行うために、静的な時間文字列を使用するためにアイデアを@juergend使用します。

EDIT:よく読まなかったので、あなたはすでにその部分を知っていました。それでも、クエリで静的な時間文字列を何回使用しなくても、静的な時間文字列を使用しないのか分かりません。

('12:34:56' BETWEEN TIME(CONVERT_TZ(opening_time, timezone, "UTC")) AND TIME(CONVERT_TZ(closing_time, timezone, "UTC"))) 
関連する問題