gpt4 book ai didi

mysql - 使用 convert_tz 进行日期时间比较

转载 作者:行者123 更新时间:2023-11-29 03:10:36 24 4
gpt4 key购买 nike

我有一个包含日期/时间值的表,这些值分别分为日期和一个 int 字段,而不是单个日期时间。每行都有唯一的日期和时间组合,因此每天有 24 行。

当我需要在 where 语句中考虑这些时区调整时,我的挑战是选择与不同时区的用户相关的数据。例如,如果用户比服务器时间提前两个小时,则 where 语句需要反射(reflect)它:

 ...where concat(theDate,' ',theHour) > convert_tz(concat('2012-01-01',' ','00:00:00'), '-8:00', '-6:00')

..例如,PST 到中央时间。但显然我不能使用 convert_tz 或在 where 子句中计算它的值。

我想使用 convert_tz 而不是笨拙的 DATE_ADD 或其他任何东西。可以做什么?

也许我错了,您可以在 where 子句中使用 convert_tz。这是核心问题:

select *, convert_tz(concat(theDay,' ',theHour), '-8:00', '-8:00') 'dayTZ' 
from stats
where convert_tz(concat(theDay,' ',theHour), '-8:00', '-8:00') > '2011-01-25 05:00:00';

以上仍然返回早于 5 的小时值。

最佳答案

尝试添加 str_to_date:

select *, convert_tz(sconcat(theDay,' ',theHour), '-8:00', '-8:00') 'dayTZ' 
from stats
where str_to_date(convert_tz(concat(theDay,' ',theHour), '-8:00', '-8:00'), '%Y-%m-%d %H:%i:%s') > str_to_date('2011-01-25 05:00:00', '%Y-%m-%d %H:%i:%s');

关于mysql - 使用 convert_tz 进行日期时间比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9088650/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com