gpt4 book ai didi

mysql - 如何将 DATETIME 转换为 unix 时间戳(并正确处理负日期)?

转载 作者:行者123 更新时间:2023-11-30 22:43:00 25 4
gpt4 key购买 nike

到目前为止我一直在使用这个功能

CREATE FUNCTION dt2ts (d DATETIME)
RETURNS BIGINT deterministic
RETURN TIMESTAMPDIFF(SECOND, FROM_UNIXTIME(0), d);

但正如我just discovered如果您的日期没有与 1970-01-01 相同的偏移量,这将给出不正确的结果,即,如果您的日期采用夏令时,则结果不正确。

UNIX_TIMESTAMP() 不起作用,因为它无法处理 unix 纪元之前的日期。

那么如何为任何给定的日期时间获取正确的 unix 时间戳?

最佳答案

找到解决方案。

CREATE FUNCTION dt2ts (d DATETIME)
RETURNS BIGINT deterministic
RETURN TIMESTAMPDIFF(SECOND, '1970-01-01', convert_tz(d,@@session.time_zone,'UTC'));

您需要import timezones为了让它起作用。我不认为没有办法做到这一点。

关于mysql - 如何将 DATETIME 转换为 unix 时间戳(并正确处理负日期)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30580589/

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