C# 用C从SQLite读取日期时间#

C# 用C从SQLite读取日期时间#,c#,sqlite,C#,Sqlite,我创建了一个带有sqllite数据库的程序,可以在其中保存数据(id/date/name) DB: 1 - 15.09.2016 00:00:00 - Test 2 - 28.06.2018 00:00:00 - Test2 15,09 28,06 类型:数字 我试着用SQLite阅读器读出来 代码: String sql = $"SELECT * FROM test"; SQLiteCommand command = new SQLiteCommand(sql, dbConnection)

我创建了一个带有sqllite数据库的程序,可以在其中保存数据(id/date/name)

DB:

1 - 15.09.2016 00:00:00 - Test
2 - 28.06.2018 00:00:00 - Test2
15,09
28,06
类型:数字

我试着用SQLite阅读器读出来

代码:

String sql = $"SELECT * FROM test";
SQLiteCommand command = new SQLiteCommand(sql, dbConnection);
SQLiteDataReader reader = command.ExecuteReader();
while (reader.Read())
{
  Console.WriteLine($"Date: {reader["date"]}");
  ...
}
输出:

1 - 15.09.2016 00:00:00 - Test
2 - 28.06.2018 00:00:00 - Test2
15,09
28,06
如果我将其转换为日期时间,我只得到2018年:

15.09.2018
28.06.2018
如何以正确的格式读出日期时间和年份

SQLite没有日期时间数据类型。您应该解析字符串ISO8601

DateTime myDateTime = DateTime.ParseExact(myString, myFormat, CultureInfo.InvariantCulture);
SqliteDataReader获得了一个方法


类型很重要,可以使用SQLiteDataAdapter。尝试以下内容:reader[“date”].ToString(“dd.MM.yyyy”)@jdweng,我认为SQLite没有日期时间数据类型。我们必须解析ISO8601字符串。SQLListe可能没有datetime,但驱动程序可能正在转换为datetime。这就像Excel使用常规格式,试图自动识别数据类型。使用Excel时,由喷气发动机或ACE驱动程序进行转换。SQLite驱动程序也可能是喷气发动机,这才是真正的问题所在。Arg我无法测试它。但是阅读器上有一个
GetDateTime
,所以应该/可以工作。