在MySQL中将Unix时间转换为IST

时间:2017-07-19 11:03:00

标签: mysql

我使用以下方法将存储在MySQL数据库hltime列中的Unix时间转换为可读格式 - “YYYY DD MM hh:mm:ss”

例如:

  • 在MySQL DB中存储的UTC日期和时间格式:1500473820

  • 用于转换为可读格式的MySQL函数:

    from_unixtime(hltime,'%Y %D %M %h:%i:%s')
    
  • 结果:“2017年7月19日07:47:00”

hltime列中存储的日期和时间均为GMT格式。因此,我如何使用from_unixtime()函数(或任何其他函数)将显示的值转换为IST(印度标准时间)。

我已尝试使用convert_tz(from_unixtime(hltime,'%Y-%D-%M %h:%i:%s'),'+00:00','+06:00'),但我获得了NULL个值。

2 个答案:

答案 0 :(得分:1)

用于转换的日期时间格式不正确

更改

'%Y %D %M %h:%i:%s'

'%Y-%m-%d %h:%i:%s'

它应该正常工作

示例

SELECT @ut:= 1500473820 AS ut
     , @ts:=FROM_UNIXTIME(@ut,'%Y-%m-%d %h:%i:%s') AS gmt
     , CONVERT_TZ(CAST( @ts AS DATETIME ),'+00:00','+05:30') AS ist;

结果

----------  -------------------  ---------------------
        ut  gmt                  ist                  
----------  -------------------  ---------------------
1500473820  2017-07-19 07:47:00  2017-07-19 13:17:00  

答案 1 :(得分:0)

你想要的是convert_tz

CONVERT_TZ('2004-01-01 12:00:00','GMT','IST');

如果未加载时区支持,则可能会返回NULL。在这种情况下,如果您不想要配置麻烦,可以使用偏移量:

CONVERT_TZ('2004-01-01 12:00:00','+00:00','+06:00');

将在给定时间内增加6小时。