[C#]SQLite 插入時間格式字段(DateTime Field)

遇到的問題:

使用SQLite3.0時,插入的時間(DateTime)字段的值總是顯示爲1899-12-30,使用可視化工具編寫sql語句爲時間字段賦值爲datetime('now')也還是顯示1899-12-30。

 

建表語句:

Create table WordTable (id  integer PRIMARY KEY autoincrement , word  TEXT ,  updatedate datetime )  

 

原來失敗的代碼片段:

 

SQLiteConnection  dbConnection = new SQLiteConnection(@"Data Source=D:\\dbFile.db;Version=3;");
dbConnection.Open();
string strInsertSql = "insert into WordTable (id,word,updatedate) values (null,@word,@updatedate)";
SQLiteCommand command = new SQLiteCommand(strInsertSql, dbConnection);
command.Parameters.Add(new SQLiteParameter("@word", DbType.String));
command.Parameters.Add(new SQLiteParameter("@updatedate", DbType.DateTime));

command.Parameters[0].Value = "測試";
command.Parameters[1].Value = DateTime.Now;

command.ExecuteNonQuery();

 

 

 

在網上查找解決方案,有人說時間需要使用“2017-08-27T17:00:00”這樣的格式,或者DateTime.Now.toString("s"),但是這兩者嘗試後都沒有成功。又看到有人說列需要使用SmallDateTime類型。使用可視化工具修改表格列的類型,修改時間成功。不過似乎這個字段支持的時間範圍是1900-2079年,精確到分。在修改代碼時發現DbType中還有一個DateTime2枚舉類型,將原代碼中DateTime改爲DateTime2後再測試,插入和修改時間成功。

MSDN中描述DateTime2爲:日期和時間數據。日期值範圍從公元 1 年 1 月 1 日到公元 9999 年 12 月 31 日。時間值範圍從 00:00:00 到 23:59:59.9999999,精度爲100 毫微秒

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章