2011-11-30 82 views
0

我有這個疑問:如何支持不支持時區表的服務器上的查詢日期時間比較

SELECT * 
FROM article 
WHERE online= 1 
AND IF(ISNULL(dateHOnline), dateHCreation, dateHOnline) <= Convert_TZ(Now(), "SYSTEM", "Europe/Paris") 

Convert_TZ(Now(),"SYSTEM","Europe/Paris")回報null,可能是因爲我的MySQL服務器不支持時區表(把+ 02:00返回一個日期時間)。

那麼,如何修改該請求(這是一個VIEW)來實現比較中的夏令時功能。我想只是把+02:00而不是Europe/Paris是不夠的。

PS:我沒有對MySQL的引擎

回答

0

你需要做的是load timezone information into mysql控制。

mysql_tzinfo_to_sql tz_dir 
+0

這不能用作SQL語句。當然... ? PS:我沒有直接控制mysql引擎 – Oliver

+0

如果你不控制服務器或者可以讓某人爲你加載這個,我認爲你必須重新思考。在應用程序中進行日期轉換並將所有日期存儲在UTC中。切勿調用now(),而是調用utc_timestamp()。 –