在C#和sqlite中,datetime值被错误地插入或错误地查询

时间:2012-02-06 16:02:41

标签: c# sqlite datetime insert

我在向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

2 个答案:

答案 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