我在向C#中的sqlite数据库插入datetime值时遇到了问题。后来我发现了一种方法。现在我可以通过格式化它们来插入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
(true)
如何使用sqlite和C#正确插入和查询日期时间数据。
感谢您的时间,
Ferda
答案 0 :(得分:1)
使用u
说明符时,DateTime会自动转换为通用时间。 From the docs(强调我的):
“U”标准格式说明符表示自定义日期和时间 格式字符串,由指定的文化定义 DateTimeFormatInfo.FullDateTimePattern属性。模式是 与“F”模式相同。但是, DateTime值是自动的 在格式化之前转换为UTC 。
如果要存储本地时间,请尝试使用F
模式。
答案 1 :(得分:1)
data.Add(“sayacTarihZamani”,string.Format(“{0:yyyy-MM-dd HH:mm:ss}”,mydatetime));
工作得很好。
感谢您的帮助 Ferda