2016-03-07 42 views
0

臨時更改CURRENT_TIMESTAMP到另一個時間我有一個相當龐大而複雜的MySQL查詢黑箱測試這個查詢是時間敏感的,它有很多的基於current_timestamp條件。如何在MySQL

我的目標是做一些測試,所以它總是通過或失敗。我想在運行查詢之前的current_timestamp值嘲諷暫時固定日期,並設置回查詢後,原來的價值。

有什麼事情那是可行的?

我不能修改查詢本身(即:尋找替代CURRENT_TIMESTAMP別的東西)

感謝

回答

0

通過設置系統變量「時間戳」。要將其恢復爲當前時間戳,請將其設置爲DEFAULT。

mysql> SET TIMESTAMP = UNIX_TIMESTAMP('2015-01-01'); 
Query OK, 0 rows affected (0.00 sec) 

mysql> SELECT NOW(); 
+---------------------+ 
| NOW()    | 
+---------------------+ 
| 2015-01-01 00:00:00 | 
+---------------------+ 
1 row in set (0.00 sec) 

mysql> SET TIMESTAMP = DEFAULT; 
Query OK, 0 rows affected (0.00 sec) 

mysql> SELECT NOW(); 
+---------------------+ 
| NOW()    | 
+---------------------+ 
| 2016-03-08 09:50:16 | 
+---------------------+ 
1 row in set (0.00 sec) 
+0

謝謝,我該如何將它設置回真實的時間戳系統? –

+0

@hello_harry發佈更新。將其設置爲DEFAULT。 –