[英]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.