在資料庫管理領域,經常需要將紀元數轉換為人類可讀的日期。紀元編號表示自訂紀元以來的某個時間點,通常用於在 MySQL 等資料庫系統中儲存時態資料。
假設您有一個紀元編號,例如 1389422614485,它代表一個特定的時間點。該值的資料類型是varchar,您希望將其轉換為可理解的日期格式。
詳細解決方案
要在MySQL中完成此轉換,您將需要利用數學函數和from_unixtime() 函數的組合:
mysql> select from_unixtime(floor(1389422614485/1000));
解釋
在此範例中,使用from_unixtime() 表示函數將紀元編號(通常將紀元編號(通常將紀元編號(通常使用)表示使用紀元編號(自紀元以來的毫秒數)轉換為日期字串。由於我們的紀元數似乎具有毫秒精度,因此我們使用 Floor(1389422614485/1000) 將其轉換為自紀元以來的秒數,這是 from_unixtime() 期望的輸入。
Output
------------------------------------------ | from_unixtime(floor(1389422614485/1000)) | ------------------------------------------ | 2014-01-11 12:13:34 | ------------------------------------------
輸出顯示與給定紀元號相對應的人類可讀日期,格式為'YYYY-MM-DD HH:MM:SS'。
MySQL 8.0 以上版本的更新
從 MySQL 8.0 版本開始,在 from_unixtime() 函數中處理毫秒時,不再需要下限函數。您可以直接提供以毫秒為單位的紀元號碼作為參數:
mysql> select from_unixtime(1594838230234/1000);
這將產生以下輸出:
------------------------------------------ | from_unixtime(1594838230234/1000) | ------------------------------------------ | 2020-07-15 18:37:10.2340 | ------------------------------------------
這個精了查詢的版本現在也支援納秒精度。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3