使用MySQL的UTC到America / New_York时区

时间:2016-12-14 14:05:25

标签: mysql

我在我的表格中存储UTC时区的日期,但我需要通过将日期从UTC转换为America / New_York时区来导出CSV文件。

我尝试过使用CONVERT_TZ MySQL函数,但是它给出了null。

如何仅使用MySQL而不使用PHP将日期从UTC转换为America / New_York时区?

2 个答案:

答案 0 :(得分:1)

您必须加载时区表。

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p password

如果您没有超级用户访问权限,则可以跳过友好的时区名称并指定小时数。

CONVERT_TZ(date,'+00:00','-07:00')

答案 1 :(得分:0)

使用CONVERT_TZ后,你得到null结果的原因是MySQL函数是没有设置TZ时区表。

您可以检查时区表是否已设置。 select * from mysql.time_zone; 如果它给出空值,那么你需要:

  1. 如果要使用CONVERT_TZ MySQL函数将日期从UTC转换为America New_Yark时区,请在MySql中插入时区。

  2. 您可以在不使用update time_zone表的情况下运行以下查询。

  3. SELECT DATE_SUB(order_date,INTERVAL 5 HOUR)作为OrderDate 来自TABLE_NAME

    使用日期格式:

    SELECT DATE_FORMAT(DATE_SUB(order_date,INTERVAL 5 HOUR),'%Y-%m-%d%h。%i。%s%p')作为OrderDate 来自TABLE_NAME

    请看一下类似的问题。

    MySQL CONVERT_TZ()

    它将帮助您“如何在MySql中插入时区”。