【问题标题】:Inserting a date into an access db in vb在vb中将日期插入访问数据库
【发布时间】:2009-08-20 10:37:39
【问题描述】:

我有点卡住了,我不知道我做错了什么。 我想将当前日期插入 VB 中的 MS Access 数据库。 我遇到问题的代码部分是:

SQLString = "INSERT INTO Sales(DateSold) VALUES ("

SQLString += Date.Today & ")"

数据库中的类型是日期,是 dd/mm/year。 提前感谢您的帮助。

【问题讨论】:

  • 如果你总是想要今天的日期,你可以考虑将mdb中的默认值设置为Date,这样就不需要插入了。

标签: sql vb.net ms-access


【解决方案1】:

如果您不使用 SQL NOW(),您可以将日期括在引号中:

SQLString = "INSERT INTO (Sales) VALUES ("

SQLString += "'" & Date.Today & "')"

【讨论】:

  • 引号是用于字符串的吗? db 需要准确地获取信息。
  • 在我使用过的所有版本的 Access 中,它都会接受日期,并使用单引号将日期放入日期列中。就像 SQL Server 所做的那样 唯一的区别是在 Access VBA 中,您可以使用 # (hash) insted 的单引号。正如 Tikeb 所说 - 您还可以从使用文化信息中受益,以使用 Access 可以正确解释的数据格式(ISO YYYYMMDD 或美国 MMDDYYYY)。
  • 啊我试试看,我只是觉得日期不会使用引号。
  • 不同之处在于您使用的数据访问方法。通过 DAO,您可以使用 # 分隔符。直接在 Access 中,如果使用默认的“SQL 89”查询模式,则使用 #,如果使用“SQL 92”,则使用 '。如果您使用 ADO,您将使用 '.在 VBA 中,您将使用适合您正在使用的数据接口层的一种,即 DAO 或 ADO。从外部访问,再次,如果 ADO,',如果 DAO,#。
  • 谢谢大卫,我对 # 东西只是 DAO 有模糊的回忆。但澄清 DAO 使用 SQL 89(因此 #)会有所帮助。干杯:)
【解决方案2】:

为什么不让 access 处理日期:

“插入销售值 (NOW())”

【讨论】:

  • 我试过了,但它不喜欢当时输入数据库的格式。我认为它可能正在尝试使用该命令添加时间和日期。
  • 如果你让“Access”处理它,并且你想要一个数据,你会使用 Date() 而不是 Now(),因为 Now() 返回日期和时间。但是从 Access 本身的外部来看,这些功能都不会可靠地工作。其次,你依赖于它得到适当的优化,即它不会对每一行都执行。在将日期值传递给处理数据库引擎之前解析它可以保证它不会被错误优化。
【解决方案3】:

您可以使用 CultureInfo 设置日期时间的格式吗?

【讨论】:

  • 我们使用 CultureInfo 来确保日期格式为 en-GB : dd/mm/yyyy 而不是美国 mm/dd/yyyy。只是在想也许这可能是问题所在,如果不是很好..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-06
  • 1970-01-01
相关资源
最近更新 更多