使用不同时区从mysql中按天选择(php)

4

我正在将潜在客户的信息存储在数据库中,每个潜在客户都有一个基于PST时区的日期和时间的datetime字段。

我希望用户能够显示某个日期(例如今天,昨天)的所有潜在客户,并选择时区。

例如,如果我想查看昨天在东部标准时间生成的所有潜在客户,我需要先将(或读取)所有datetime值转换为东部标准时间(EST),然后只选择目标范围内的那些(即昨天)。

最佳方法是什么?


它也会考虑夏令时吗? - Nitin Midha
1个回答

2
您可以使用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

谢谢,这很有帮助。 但是,我如何只选择今天在ETS中的潜在客户? - Adam Tal
CONVERT_TZ(CURDATE(), 'EST') 需要3个参数,而您只使用了两个 @VolkerK - ehp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接