如何在MySQL中将毫秒日期与不同时区匹配?

时间:2017-02-02 04:24:16

标签: java mysql date datetime

我有一个数据库,以毫秒格式保存日期,如 418712400000 。在这个问题中,问题是使用此日期来保存生日(我只能更改后端应用程序,您无法通过数据库结构修改或前端逻辑更改来回答此问题)。数据库中的生日是: 418705200000 ,来自前端应用程序的生日 418712400000 。使用MySQL我将这个时间戳转换为日期,我得到了这个:

  • 数据库生日: 418705200000 - > 08-04-1983(dd-mm-yyyy)
  • 前端生日: 418712400000 - > 09-04-1983(dd-mm-yyyy)

用户的生日是09-04-1983

这个应用程序在阿根廷运行,但总部在另一个国家(哥伦比亚),阿根廷人没有意识到这个错误。

我知道时区影响了这个结果,如何转换日期以匹配结果?

这是MySQL查询:

SELECT
    *, 
    DATE_FORMAT(        FROM_UNIXTIME(birthday / 1000),     '%d-%m-%Y'  ) AS birthday_date,
    DATE_FORMAT(        FROM_UNIXTIME(418712400000 / 1000),     '%d-%m-%Y'  ) AS front_end_date
FROM
    users
WHERE
    userIdentificacion = 30125278
HAVING
    birthday_date = front_end_date

0 个答案:

没有答案