簡體   English   中英

C#查詢日期時間關閉SQLite數據庫失敗

[英]C# query datetime off sqlite database fails

我正在讀取一個sqlite文件,其中datetime列數據保存為整數值(INTEGER NO NULL)

DateTime dt=reader.GetDateTime(nColDateTime);

但是它發出一個錯誤,指出返回值的格式不正確。 我嘗試使用Datetime類中的所有其他可用方法,並且僅找到

DateTime dt=DateTime.FromBinary(reader.GetInt64(nColDateTime));

工作(其他人返回異常)。 但是格式化的日期(如dt.ToShortDateTime())不正確(即0042/11/20),我不知道這是什么。 然后我嘗試這個

long d=DateTime.Now.Ticks-reader.GetInt64(nColDateTime);
DateTime dt=new DateTime(d);

它給了我1970/05/18

你能幫我得到正確的日期時間嗎?

您的日期以Unix紀元格式存儲。

您可能只想使用:

private static readonly DateTime epoch = new DateTime(1970, 1, 1);

...

var myDate = epoch + TimeSpan.FromTicks(reader.GetInt64(nColDateTime));

例如,當我在“ 1970/05/18”上方查看您的示例時,我可以假定您的日期大約是5個月,比今天早18天。

這是我如何獲取原始值的方法:

(DateTime.Today - new DateTime(1970, 5, 18)).Ticks

哪個返回:

13119840000000000

將其插入我的公式中:

new DateTime(1970, 1, 1) + TimeSpan.FromTicks(13119840000000000)

返回:

2011/07/30

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM