我只能了解如何获取当前日期,而不是当前日期和时间的组合。我还没有找到合适的解决方案。
cmd.CommandText = "INSERT INTO [Table] (DATE) VALUES (@date)";
var pDate = new OleDbParameter("@date", SqlDbType.DateTimeOffset);
pDate.Value = DateTime.Now.Date;
cmd.Parameters.Add(pDate);
非常感谢任何帮助。
编辑:也尝试过:
var dateAndTime = DateTime.Now;
var date = dateAndTime.Date;
但我仍然只是收到“6/12/2016”的日期,而不是时间。
答案 0 :(得分:3)
Access SQL支持名为Now()
的函数,该函数返回当前日期和时间。
因此,让db引擎使用Now()
而不是在c#中导出等效值然后将该值作为参数提供给INSERT
会更简单。
cmd.CommandText = "INSERT INTO [Table] ([DATE]) VALUES (Now())";
注意Date
是Jet reserved word。将该名称括在INSERT
的方括号中,表示数据库引擎是指对象名称而不是Date()
函数。
答案 1 :(得分:0)
尝试使用Access已知的数据类型:
cmd.CommandText = "INSERT INTO [Table] (DATE) VALUES (@date)";
var pDate = new OleDbParameter("@date", SqlDbType.DateTime);
pDate.Value = DateTime.Now;
cmd.Parameters.Add(pDate);