繁体   English   中英

在Access数据库C#中插入日期和时间

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM