我使用以下方法将存储在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
个值。
答案 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小时。