簡體   English   中英

MySQL TIME標記為天,小時

[英]MySQL TIME stamp to days, hours

在查看MySQL文檔時,我沒有在DATE_FORMAT(由TIME_FORMAT引用)下找到將MySQL TIME值(例如:172:04:11)轉換為“7天,4小時”的選項。

有沒有辦法(在MySQL中)以這種方式格式化時間? 或者我應該只在PHP中返回的TIME值進行操作?

我討厭回答我自己的問題,但要清除MySQL的TIME()函數會截斷超過838:59:59的值 - 顯然不可取。

我找到的解決方案是使用它:

TIMESTAMPDIFF(SECOND,date_old,date_newer) 

哪個沒有相同的截斷問題。 一旦你有秒,使用一些服務器端腳本來格式化我在原始請求中的時間。 如果您想在PHP中查看示例,或者編寫自己的示例,請回復。 :)

希望這有用嗎?

SELECT CONCAT( FLOOR(TIME_FORMAT('172:04:11', '%H')/24), ' days ', (TIME_FORMAT('172:04:11', '%H') MOD 24),   ' hours ', TIME_FORMAT('172:04:11', '%i'), ' minutes ', TIME_FORMAT('172:04:11', '%s'), ' seconds')

TIME類型的變量最有可能用於表示時間間隔,您可以使用addtime()函數將此間隔添加到給定的DATETIME類型變量。

SELECT ADDTIME( NOW(), '172:04:11' );

按預期工作,但是如果您需要顯示此時間間隔,則只需使用以下日期和小時:

SELECT CONCAT( 
  FLOOR(HOUR('172:04:11')/24), 
  ' days, ',
  HOUR('172:04:11') MOD 24, 
  ' hours.');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM