在MySQL中投放日期会返回上一个日期

时间:2019-06-26 14:36:25

标签: mysql date casting

我对这个问题有疑问。为什么MySQL执行此强制转换时返回上一个日期?

select  cast('2019-06-26' as datetime) as date1, 
        cast('2019-06-26' as date) as date2,
        date_add(cast('2019-06-26' as date), interval 1 day) date3;

enter image description here

这种行为正在影响我的一份报告的最终结果。我通过增加一天来解决了这种情况。但是,我想了解这个结果。

此致

1 个答案:

答案 0 :(得分:0)

我想这是某种时区问题。假设您的时区比MySQL服务器所在的时区早几个小时,那么MySQL可能会向后调整这些传入日期以匹配服务器时区。

尝试运行以下查询以找出MySQL的服务器时区是什么:

SELECT @@global.time_zone, @@session.time_zone;

然后,将其与您当前的时区进行比较。