我正在撰寫一個 Delphi 程式,該程式需要與存盤在屬于另一個程式的 SQLite 資料庫中的資料進行互動。到目前為止一切正常,除了我無法從 SQLite 資料庫的列中的資料存盤中獲取日期/時間值,資料型別為“日期時間”。
我確實知道欄位的資料型別在 SQLite 中是不相關的,并且所有內容都存盤為字串,也許這可能是我發現自己陷入這種困境的原因。
下面是存盤在 SQLite 資料庫中的幾行資料(第 3 列)與讀取和寫入此 SQLite 資料庫的程式(第 2 列)中顯示的相應日期值的示例:
1 11/7/1971 621939168000000000
2 3/17/1976 623314656000000000
3 5/4/1996 629667648000000000
4 9/21/2007 633259296000000000
5 11/17/1972 622264032000000000
6 2/7/1996 629592480000000000
7 6/13/2000 630964512000000000
我的要求:從 Delphi 程式中讀取第 3 列中的值后,如何將其轉換為與第 2 列中顯示的日期/時間值相同的日期/時間值?我已經嘗試過 UnixToDateTime 函式,但它不會產生相同的值(如第 2 列)。任何人都可以幫忙嗎?
提前致謝!
uj5u.com熱心網友回復:
第 3 列中的值是自 0001 年 1 月 1 日以來的 100 納秒數。您可以像這樣將其轉換為 Delphi TDateTime
:
theDate := (Value/864000000000) - 693593;
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/503920.html