0
我得到了一個非常簡單的需求: 將一些毫秒值轉換爲「##:##:##」(小時/分鐘/秒)格式。FROM_UNIXTIME返回一小時
看來FROM_UNIXTIME可以做的工作,所以我用它,但是......
SELECT
FROM_UNIXTIME(42, "%H:%i:%s") AS pony
,FROM_UNIXTIME(3702, "%H:%i:%s") AS unicorn
回報
pony unicorn
01:00:42 02:01:42
有了這個功能沒有時區設置,我不知道如何去除這個額外的(跆拳道)小時。
去除3600秒產生負價值,它輸出NULL
我想我應該用另一種方式,但如果我必須使用半打轉換,我可能也做手工......是有沒有什麼簡單高效?
我沒有一個確切的MySQL版本,但我至少需要便攜的反正。有些東西可以工作,比如MySQL 5.x 我需要手動進行計算嗎?
編輯: 選擇了難看的,但工作 「溶液」:
CONCAT(
LPAD(FLOOR((my_column/1000)/3600), 2, '0'), ':',
LPAD(FLOOR(((my_column/1000) % 3600)/60), 2, '0'), ':',
LPAD(FLOOR((my_column/1000) % 60), 2, '0')) AS time
輸出與所需的格式。 實例 「3點12分04秒」 或 「123:00:44」
我的猜測是那是你當地的時區。也許使用'SET time_zone ='UTC';'幫助,請參閱https://stackoverflow.com/q/18276768/5520354 – C14L
@ C14L是的,我相信這是因爲那些******* daylightssavings(Im FR),但現在只試圖設置時區...將所有結果都轉換爲** null **。另外,'UTC'似乎不是一個價值(產生了一個錯誤),必須使用'+00:00'。它是否可以解釋空值? – Balmipour