一 查詢的列數據類型為date,當它的值為空時,用查詢語句select createdate from tb:
1)在SQLite數據庫管理器SQLiteStudio能正常查詢到。
2)在.net中,就會拋出異常:該字符串未被識別為有效的 DateTime 錯誤。
解決方法:把類型date改為varchar
異常詳細信息: System.FormatException: 該字符串未被識別為有效的 DateTime。
解決方案:
在日期保存到Sqlite數據庫時轉換一個類型,比如:string _now = System.DateTime.Now.ToString(“s”);
也就是說在.ToString()方法中加一個s,即可解決日期讀取錯誤的問題。
簡單代碼示例:
string _indate = Request[“indate”]; //輸入的日期如:2009-2-21
DateTime _inTime = Convert.ToDateTime(_indate);
//如下是保存數據SQL語句
insert into 表(indate) values(‘“ + _inTime.ToString(“s”) + “‘); //這里轉換
因為iso 8601的描述:(http://msdn.microsoft.com/zh-cn/library/ms187819.aspx )
給出了字符串示例:
* 2004-05-23T 14:25:10
* 2004-05-23T 14:25:10.487
所以Sqlite保存的日期要轉為iso 8601標准字符串格式
使用 日期.ToString(“s”);這種方法轉換成 iso 8601標准字符串格式了。