Ste*_*e F 1 delphi datetime-format
我正在编写一个 Delphi 程序,该程序需要与存储在属于另一个程序的 SQLite 数据库中的数据进行交互。到目前为止一切正常,除了我无法从 SQLite 数据库的列中的数据存储中获取数据类型为“datetime”的日期/时间值。
我确实知道字段的数据类型在 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
Run Code Online (Sandbox Code Playgroud)
我的要求:当我从 Delphi 程序中读取第 3 列中的值后,如何将其转换为与第 2 列中显示的相同日期/时间值?我尝试过 UnixToDateTime 函数,但它不会产生相同的值(如第 2 列)。有人可以帮忙吗?
提前致谢!
第 3 列中的值是自 1/1/0001 以来的 100 纳秒数。您可以将其转换为 Delphi,TDateTime如下所示:
theDate := (Value/864000000000) - 693593;
Run Code Online (Sandbox Code Playgroud)