我想讓它在MySQL查詢中調用NOW()和CURDATE()以UTC來返回日期。如何在沒有通過並更改所有使用這些函數的查詢的情況下實現此目的?如何讓MySQL的NOW()和CURDATE()函數使用UTC?
回答
終於找到了我一直在尋找...
在my.cnf中,
[mysqld_safe]
timezone = UTC
我把這個選項放在[mysqld]下,並且mysql無法啓動。
調用「SET time_zone ='+ 0:00';」在每個頁面加載也將工作,但我不喜歡在每個頁面加載調用該查詢的想法。
將服務器的時鐘設置爲UTC。不完全是。
如果你能做到,就做吧。
其中最令人頭疼的是「cron」工作等,在當地時區運行,這意味着一些cron工作將每年錯過一次,其餘所有時間在格林尼治標準時間不同的時間運行半年我假設你在這裏有夏令時的時區)。
MySQL有時區支持,但它是瘋了,搞砸了。如果你不需要,不要使用它。只需將服務器的時鐘設置爲UTC,時間將開始工作。
我知道更改服務器時鐘對任何託管系統都是一個重大變化,並且您可能會有大量可能受到影響的服務器和服務,但請嘗試繼續操作。質量保證工作可能很重要,但請嘗試。
我以前讀過這個,想知道你在開發時做了什麼?您是否將開發PC的時間設置爲UTC? – 2012-06-23 13:14:53
您在虛擬機中開發,並將虛擬機時鐘設置爲UTC。永遠不要在臺式機上開發,這在很多方面都是很痛苦的,特別是如果它是由企業IT部門管理的Windows PC,它可以隨心所欲地通過組策略隨意更改配置。 – MarkR 2012-06-23 14:25:06
您將需要使用SET TIMESTAMP語句以所需格式格式化日期時間結果。這將意味着改變所有這些查詢。儘管sysdate()不會服從。
正確的做法是將服務器的時區更改爲UTC,就像MarkR所說的那樣。
但是,也可以使用SET time_zone更改當前會話的時區。
從手冊:
當前會話時區設置影響顯示和那些區敏感的時間值的存儲。這包括(),如現在的功能顯示的值或CURTIME()
轉到/etc/mysql/my.cnf文件和下的[mysqld]部分
默認時區添加此以下行= '00:00'
然後,重新啓動你的mysql。現在選擇curtime();顯示GMT時間。
如果改變你的跑步生產服務器的時區或更新的關鍵配置設置並重新啓動mysql的似乎是不現實的和/或矯枉過正,試試這個:
CONVERT_TZ(NOW(), 'US/Pacific', 'UTC')
哪裏US/Pacific
是您NOW()
調用返回時區時間英寸
- 1. PreparedStatement和CURDATE()MySQL函數
- 2. Carbon :: now()不使用UTC
- 3. 本地時區中的PHP日期函數和UTC中的NOW
- 4. 如何在PHP中使用NOW()函數
- 5. 如何laravel NOW()函數中使用SQL
- 6. 使用'now'的NSExpression函數
- 7. 如何在cakephp中爲date字段使用mysql now()函數?
- 8. 如何在querydsl中使用mysql now()函數?
- 9. 在MySQL中使用INTERVAL和CURDATE
- 10. utc date or just a timestamp from now now
- 11. 在MySQL中調用NOW()函數
- 12. 如何獲得JPA命名查詢上的CURDATE()/ NOW()?
- 13. 如何使用PDO函數CURDATE()的多重插入
- 14. 計數在mysql中的curdate()
- 15. 如何使用bind_param在MySQLi中使用MySQL NOW()函數插入記錄?
- 16. PDO使用MySQL的NOW()
- 17. SQL默認NOW()在UTC
- 18. 如何將MySQL NOW()函數從數組傳遞到清理值
- 19. Curdate()Vs current_date MySql
- 20. Rails/MySQL CURDATE在
- 21. MySQL的選擇CURDATE
- 22. 在CURDATE()和NOW()創建錯誤的數字/字母格式輸出
- 23. 在函數中調用now()
- 24. 在ORM查詢中使用Now函數
- 25. Now()函數是tempratmental
- 26. 的executeUpdate和CURDATE()
- 27. 在PHP中,我應該使用MySQL的日期函數還是curdate()?
- 28. curdate()如何在MySQL中進行比較
- 29. Mysql CURDATE()2日期
- 30. mysql curdate off by one
不是你要求什麼,但有時它更好地使用UTC_TIMESTAMP() – 2013-08-01 13:42:14
這可能會幫助你:http://stackoverflow.com/questions/19023978/should-mysql-have-its-timezone-set -to-utc – 2014-08-29 10:58:13
這個怎麼樣:http://w3resource.com/mysql/date -and-time-functions/mysql-utc_timestamp-function.php – zx1986 2017-02-18 10:20:53