[英]insert date with time in access database c#
在访问我只收到日期5/12/2015
,但没有时间,我需要的是这样的
5/12/2015 4:56 PM
保存在访问数据库中
DateTime dtclickdate = DateTime.Now;
OleDbParameter clickdate = new OleDbParameter("@clickdate ", OleDbType.DBDate);
clickdate.Value = dtclickdate;
cmd.Parameters.Add(clickdate);
您应该使用OleDbType.DBTimeStamp
枚举,该枚举映射到DateTime
:
DateTime dtclickdate = DateTime.Now;
OleDbParameter clickdate = new OleDbParameter("@clickdate ", OleDbType.DBTimeStamp);
clickdate.Value = dtclickdate; cmd.Parameters.Add(clickdate);
有关更多信息,请参见本文档 。
看一下OleDbType的MSDN描述 :
DBDate :日期数据,格式为yyyymmdd(DBTYPE_DBDATE)。 这映射到DateTime。
如您所见, DBDate
不包含时间组件。 我建议改用Date
:
日期 :日期数据,存储为双精度(DBTYPE_DATE)。 整个部分是自1899年12月30日以来的天数,小数部分是一天的一小部分。 这映射到DateTime。
根据下面的Microsoft知识库文章,这是用于访问日期/时间字段的正确类型。
从INFO引用:OleDbType枚举与Microsoft Access数据类型 :
Access Type Name Database Data Type OLE DB Type .NET Framework Type Member Name
...
Date/Time DateTime DBTYPE_DATE System.DateTime OleDbType.Date
...
StackOverflow应该真正增加对表的支持 ...
PS:请注意, OLEDB在日期/时间字段中不喜欢毫秒 。 如果条件表达式错误中出现数据类型不匹配 ,请删除毫秒:
dtm = New DateTime(dtm.Year, dtm.Month, dtm.Day, dtm.Hour, dtm.Minute, dtm.Second)
试试OleDbType.DBTimeStamp
:
DateTime dtclickdate = DateTime.Now;
OleDbParameter clickdate = new OleDbParameter("@clickdate ", OleDbType.DBTimeStamp);
clickdate.Value = dtclickdate;
cmd.Parameters.Add(clickdate);
原因:这还存储时间部分的解释在这里 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.