【发布时间】:2011-01-29 18:33:19
【问题描述】:
我将潜在客户存储在数据库中,每个潜在客户都有一个日期时间字段,其中包含基于 PST 时区的日期和时间。
我希望我的用户能够显示某个日期(例如今天、昨天)的所有潜在客户,并选择时区。
例如如果我想查看昨天在 EST 时区生成的所有潜在客户,我需要先将所有日期时间值转换(或读取)为 EST,然后只选择目标范围内(昨天)的那些。
最好的方法是什么?
【问题讨论】:
-
还会考虑日光节约吗?
我将潜在客户存储在数据库中,每个潜在客户都有一个日期时间字段,其中包含基于 PST 时区的日期和时间。
我希望我的用户能够显示某个日期(例如今天、昨天)的所有潜在客户,并选择时区。
例如如果我想查看昨天在 EST 时区生成的所有潜在客户,我需要先将所有日期时间值转换(或读取)为 EST,然后只选择目标范围内(昨天)的那些。
最好的方法是什么?
【问题讨论】:
你可以使用 MySQL 的Convert_TZ(dt, from_tz, to_tz) 函数。
例如
SELECT CONVERT_TZ('2010-03-20 12:00:00', 'EST', 'PST8PDT')
返回2010-03-20 10:00:00
编辑:要选择“今天在 EST”的所有记录,您可以使用类似
SELECT
x,y,z
FROM
foo
WHERE
dt >= CONVERT_TZ(CURDATE(), 'EST', 'PST8PDT')
AND dt < CONVERT_TZ(CURDATE(), 'EST', 'PST8PDT')+Interval 1 day
【讨论】: