我正在使用共享主机的GoDaddy网络服务器。我有一个mysql数据库,其中有2列包含数据类型日期..我正在使用以下sql查询。从query1我得到过期记录&来自query2获取持续记录。问题是因为网络服务器使用它的本地时间,所以按照印度时区我没有得到准确的记录。有没有办法解决查询中的问题。
查询1
SELECT * FROM提供WHERE startDate< = CURRENT_DATE AND endDate< = CURRENT_DATE
QUERY2
SELECT * FROM提供WHERE startDate< = CURRENT_DATE AND endDate> = CURRENT_DATE
答案 0 :(得分:0)
如果您在数据库中的值存储在IST中,那么下面应该有效。
查询1
SELECT * FROM提供WHERE DATE_ADD(startDate,INTERVAL -330 MINUTE)< = CURRENT_DATE和DATE_ADD(endDate,INTERVAL -330 MINUTE)< = CURRENT_DATE
QUERY2
SELECT * FROM提供WHERE DATE_ADD(startDate,INTERVAL -330 MINUTE)< = CURRENT_DATE AND DATE_ADD(endDate,INTERVAL -330 MINUTE)> = CURRENT_DATE
答案 1 :(得分:0)
您需要转换时区。我假设MySql默认使用UTC时间。
sudo apt-get install libgsl0-dev
http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_convert-tz
您需要检查时区表。
SELECT * FROM offers WHERE CONVERT_TZ(startDate,'UTC','Asia/Kolkata') <= CURRENT_DATE AND CONVERT_TZ(endDate,'UTC','Asia/Kolkata') <= CURRENT_DATE;
http://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html
Mysql使用这些表来转换时区。如果上面的表是空的。你必须填写它。
SELECT * FROM mysql.time_zone;
SELECT * FROM mysql.time_zone_name;
此处有更多信息http://dev.mysql.com/doc/refman/5.5/en/mysql-tzinfo-to-sql.html