在C#和sqlite中,日期时间值被错误地插入或查询

本文关键字:错误 插入 查询 时间 sqlite 日期 | 更新日期: 2023-09-27 18:23:44

我在C#中将日期时间值插入sqlite数据库时遇到问题。后来我找到了一种方法。现在我可以通过像这样格式化DateTime值来插入它们

data.Add("sayacTarihZamani", string.Format("{0:u}", MydateTimeData)); 

我可以看到使用sqlite管理工具将数据正确地插入到数据库表中。当我查询这些数据时,得到的值是错误的。该值比其正常值晚3小时。

例如,在管理工具中,我看到了30.03.2011 16:00:00的值,但在C#网格中,该值是30.03.2011 19:00:00。。

有一个例外。我使用管理工具手动输入了一行。它的日期值为数据网格中的30.03.2011 11:30:00仍然是30.03.2011 11:30:00(真)

如何使用sqlite和C#正确插入和查询日期时间数据。

感谢您抽出时间,
Ferda

在C#和sqlite中,日期时间值被错误地插入或查询

使用u说明符时,DateTime会自动转换为通用时间。来自文档(强调我的):

"U"标准格式说明符表示自定义日期和时间由指定区域性定义的格式字符串DateTimeFormatInfo.FullDateTimePattern属性。模式是与"F"模式相同。但是,DateTime值是自动的在格式化之前转换为UTC

如果要存储本地时间,请尝试使用F模式。

data.Add("sayacTarihZamani",string.Format("{0:yyyy-MM-dd HH:MM:ss}",mydatetime);

工作正常。

谢谢你的帮助Ferda