在系统【区域和语言选项】中如果设置短日期格式为"yy-M-d",在写代码更新数据库中"日期时间"型字段时会出现一些问题。具体描述如下:环境vb2005,Access2003.代码:
- VB.NET code
d1 = DateTimePicker1.Value.Date d2 = DateTimePicker2.Value.Date '…… MyCommand = New OleDbCommand("Update 表名 set 日期one=#" & d1 & "# ,日期two=#" & d2 & "# where 编号='" & na & "'", MyConnection) MyCommand.ExecuteNonQuery()
假如现在DateTimePicker1控件中显示的日期为“2012-06-18”,执行更新操作后保存到数据库中的却变成了“2018-12-6”.逐句调试时,d1的值也正确。大家不妨可以测试下。
------解决方案--------------------
2018-12-6这种格式没有什么吗不对啊,因为服务器上系统设置的格式就是这样的啊。
数据库存什么格式跟你的使用没有关系,你直接使用就好,如果是显示,可以进行格式化
------解决方案--------------------
你可以用字符型字段类型,那样更改日期时,格式化一下,这样不受系统日期格式限制
DateTime.Now.ToString("yyyy-MM-dd"),但是读取时,可能要注意,必要时需要按指定格式转换