Ms-Access

如何解釋儲存為 10 位負整數的時間戳?

  • March 28, 2021

我繼承了一個未記錄的 MS Access 數據庫,其中日期/時間值儲存在一INT列中,到目前為止我看到的大多數值都是 10 位負整數。

您如何處理這些,就好像它們DATETIME在 SQL 查詢中一樣?

如果它根本無法通過 SQL 完成,而必須通過程式/腳本語言完成,那麼需要什麼數學/過程才能將這些值轉換為人類可讀的日期和時間?

範例值: -1358667448, -1358667348,-1358667248

數據是在 2006-2019 年期間擷取的,因此時間戳將在該時間範圍內。

根據您的評論,值顯示為時間戳的唯一位置是在應用程序中。您無權訪問應用程式碼。

唯一可能的解決方案是獲取應用程序中顯示的少量實際時間值並將它們與欄位中的值相關聯,而不是計算差異的計算方式。然後您需要重新計算這些值並將它們添加到您的數據庫中。

我強烈建議您不要替換源數據。可能使用格式正確的日期將列添加到表中。

我最初預計它可能會遵循某種通用標準,詢問社區可能會了解哪種標準格式等,但是經過進一步調查,時間戳實際上可能是自 Unix 以來的秒數Epoch (01-Jan-1970 00:00:00),但由於某些未知原因添加了一個減號。雖然目前未經驗證,但基於Epoch Converter線上工具的回答:

  • 1358667448可能是 2013-01-20 07:37:28 UTC-0
  • 1358667348可能是 2013-01-20 07:35:48 UTC-0
  • 1358667248可能是 2013-01-20 07:34:08 UTC-0

如果有人知道為什麼可能會添加減號,請發表評論,我很想知道。謝謝你。

在按照最初的要求將值處理為 SQL 中的日期/時間方面,Epoch Converter 網站上有許多針對不同數據庫引擎變體的範例。

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