如何比较EST日期时间与mysql数据

时间:2014-08-16 09:37:58

标签: php mysql sql

我在mysql数据库表中购买了数据。服务器上的所有数据都以UTC时区存储。

我可以使用以下代码在EST时区中转换日期时间。

$date = date_create(date('Y-m-d H:i:s'), timezone_open('Etc/GMT+0'));
date_timezone_set($date, timezone_open('Etc/GMT+5'));

我使用以下代码获取当天的最后一个和下个星期六。

$dt_week_start_time = strtotime("last saturday")+((20*3600)+ 1);
$dt_week_start_date = date('Y-m-d G:i:s', $dt_week_start_time);

$dt_week_end_time = $dt_week_start_time + (7*3600*24) - 1;
$dt_week_end_date = date('Y-m-d G:i:s', $dt_week_end_time);

但是我如何将以上EST时区转换的日期时间与存储在UTC时区的mysql数据进行比较?当我在查询下面触发时,我需要在EST时区中转换'purchaseatetime'字段的数据。这可能吗?或者我是以错误的方式做到的?请指教。

$str_query_select = "SELECT *, SUM(extendedprice) AS gross_price FROM t_product_purchase ";
$str_query_select .= " WHERE purchasedatetime BETWEEN '".$dt_week_start_date ."' AND '".$dt_week_end_date."'";
$str_query_select .= " AND sellerpkid=1";
$str_query_select .= " GROUP BY purchasedatetime ORDER BY purchasedatetime DESC ";

1 个答案:

答案 0 :(得分:1)

你可以看到:

http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_convert-tz

SET time_zone = 'proper timezone';
being done once right after connect to database. and after this all timestamps will be converted automatically when selecting them.
在php中你可以这样做:

$ date = new DateTime($ dt_week_start_date); $ date-> setTimezone(new DateTimeZone(' Europe / Moscow')); //基于您所需的区域

echo $ date->格式(' Y-m-d H:i:s');

然后在你的sql中使用它。