Mysql

如何通過 select 語句從“1583981745.335346”(儲存在“雙”欄位類型中)輸出清晰的時間戳?

  • April 21, 2020

我在 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 中進行處理。

引用自:https://dba.stackexchange.com/questions/261753