Mysql
如何通過 select 語句從“1583981745.335346”(儲存在“雙”欄位類型中)輸出清晰的時間戳?
我在 WordPress 安裝中有一個表格,它以我不認識的格式儲存時間戳,我也不知道如何翻譯它。在 MySQL 數據庫中,它顯示為“1583981745.335346”。在 WordPress 中,在外掛的日誌中,此特定條目如下所示:
2020 年 3 月 11 日下午 10:55:47.117
通過 phpMyAdmin 對錶結構的進一步檢查顯示該特定列的類型是“雙”。
我已經完成了大量的閱讀和測試,甚至瀏覽了外掛的程式碼,可以在下面找到,但我一生都無法弄清楚如何通過 select 語句將這種奇怪的“1583981745.335346”格式轉換為清晰的時間戳.
https://github.com/WPWhiteSecurity/WP-Security-Audit-Log
在文件中搜尋列名“created_on”,我能找到的最接近的是 /classes/AlertManager.php 的第 2012 行開始的部分的中心:
// Meta details. return array( 'site_id' => $site_id, 'blog_name' => $blog_name, 'blog_url' => $blog_url, 'alert_id' => $alert_id, 'date' => str_replace( '$$$', substr( number_format( fmod( (int) $created_on + $this->gmt_offset_sec, 1 ), 3 ), 2 ), date( $this->datetime_format, (int) $created_on + $this->gmt_offset_sec ) ), 'code' => $const->name, 'message' => $occurrence->GetAlert()->GetMessage( $occurrence->GetMetaArray(), array( $this->plugin->settings, 'meta_formatter' ), $occurrence->_cachedmessage ), 'user_name' => $username, 'user_data' => $user_id ? $this->get_event_user_data( $username ) : false, 'role' => $roles, 'user_ip' => $ip, 'user_agent' => $ua, );
另一個線索如下,位於 /classes/Loggers/Database.php 的第 62 行:
$occ->created_on = is_null( $date ) ? microtime( true ) : $date;
但是,不幸的是,我無法弄清楚如何處理這些資訊。最終目標是能夠使用 select 語句查詢該欄位(以及其他欄位,包括相關表中的欄位)並輸出實際時間戳。這可能嗎?
FROM_UNIXTIME可以提供幫助。
select from_unixtime(1583981745.335346) 2020-03-12 02:55:45.335346
參考:小提琴
這是一個日期時間類型,因此可以在 PHP 中進行處理。