如何编写正确的语法以在数据库中插入日期?
这是我已经尝试过的SQL命令:
"insert into table1 (date) values (#"+DateTime.Parse(DateTime.Now.ToShortDateString())+"#)"
还有:
"insert into table1 (date) values ('"+DateTime.Parse(DateTime.Now.ToShortDateString())+"')"
答案 0 :(得分:1)
我确定可以在Stackoverflow上找到该问题的重复项,但是事实证明,我发现的有关C#和Access SQL的日期格式的许多问题都有其自身的特殊问题,没有简单的答案。但是,如果您只是查看各种代码示例中的字符串格式,那么从技术上讲,答案仍然存在于其他问答中。
此处的目的是构建SQL 字符串。这两个无效的示例都在调用DateTime.Parse()
方法,该方法返回DateTime值...而不是String数据类型。
给定的代码将绕一圈。方法DateTime.Now
返回DateTime类型。但是随后ToShortDateString()
方法将其转换为字符串。但是随后,Parse()
函数会将字符串转换回日期,从而基本上撤消了已有的内容。
故事的道德?删除对DataTime.Parse()的调用。
"insert into table1 (date) values (#" + DateTime.Now.ToShortDateString() + "#)"
答案 1 :(得分:1)
您必须为日期表达式使用正确的字符串表达式,或使用Date():
"insert into table1 ([date]) values (Date())"
对于其他日期值:
"insert into table1 ([date]) values (#" + someDate.ToString("yyyy'/'MM'/'dd") + "#)"