簡體   English   中英

MYSQL NOW()落后30秒

[英]MYSQL NOW() behind by 30 seconds

當我查詢NOW()時,mysql返回的時間與服務器上的當前時間相差大約-30秒。 有任何想法嗎? 我嘗試瀏覽配置文件,但一無所獲。 我正在運行5.1.37版本

SELECT NOW()

服務器的時區上下文和獲取日期的上下文幾乎可以肯定,關於leap秒的存在情況有不同的看法。 我懷疑這將是24秒而不是30秒。

您可以通過在獲取日期時調整時區來進行測試。 在各種Unix上,可以在時區上使用“ right /”前綴來調整leap秒,並查看其如何改變。

要對其進行修復,您需要確保服務器在正確設置時區環境變量的情況下運行。

更新:

缺少“ Windows”標簽。 Windows時間定義為UTC而不是TAI,因此包含leap秒。 如果差異確實是24秒,那么您需要檢查mysql和Windows是否沒有應用leap秒調整。

您確定運行腳本並檢查服務器上的時間並不需要30秒嗎?

NOW()返回一個恆定時間,該時間指示該語句開始執行的時間。

您需要根據查詢初始化而不是完成進行比較。

如果您需要通話時間,請改用SYSDATE()

如果這一切都很好,但是您仍然有問題,那么您是否肯定只是在使用SELECT NOW() 如果您在查詢中的某個位置添加了一個字段,那么它實際上可能是在添加到NOW()列中,而不是您認為的那個字段。

如果所有這些仍在檢查中,我認為略讀Server Timezone Support MySQL文章可能會有所幫助 也許leap秒被忽略了。

您是否重新啟動了MySQL服務器,以防萬一自服務器啟動以來調整了服務器時間?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM