2017-07-19 76 views
-2

我用下面的方法來轉換Unix時間存儲在MySQL數據庫的hltime柱成可讀格式IST - 「YYYY DD MM HH:MM:SS」轉換Unix時間在MySQL

對於實施例:

  • UTC日期和時間格式存儲在MySQL數據庫:用於轉換爲可讀格式1500473820

  • MySQL的功能:

    from_unixtime(hltime,'%Y %D %M %h:%i:%s') 
    
  • 結果: 「2017年7月19日七時47分00秒」

的日期和時間存儲在hltime列在GMT。因此,如何使用from_unixtime()函數(或任何其他函數)將顯示的值轉換爲IST(印度標準時間)。

我試過使用convert_tz(from_unixtime(hltime,'%Y-%D-%M %h:%i:%s'),'+00:00','+06:00'),但是我得到了NULL的值。

回答

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 
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個小時給定的時間。用來轉換

+0

我嘗試使用:CONVERT_TZ(FROM_UNIXTIME(hltime, '%Y%d%M%H:%I:%S'), 'GMT','IST'),但我得到空值 –

+0

@PrateekDaniels嘗試使用我寫的格式(在年和月之間使用'-') – kabanus

+0

from_unixtime(hltime,'%Y-%D- %M%h:%i:%s' - 給出以下內容:2017-19至7月07:47:00。但是使用convert_tz(from_unixtime(hltime,'%Y-%D-%M%h:%i:%s'),'GMT','IST')會給NULL值 –