【问题标题】:Data type mismatch in AccessAccess 中的数据类型不匹配
【发布时间】:2014-03-05 05:16:45
【问题描述】:

我一直在用我的头撞墙,我一直在访问。我试图进行的查询应该查找 1996 年 7 月 8 日至 8 月 8 日期间放置的客户 ID,并显示客户 ID 和订单日期列。仅有的两个相关表是包含 CustomerID 的 Customer 表和包含 CustomerID 和 OrderDate 的 Orders 表。我收到以下不匹配错误:

SELECT CustomerID FROM Orders WHERE OrderDate BETWEEN #7/8/1996# AND #8/8/1996#;

提前致谢!

【问题讨论】:

    标签: sql ms-access ms-access-2010


    【解决方案1】:
    • Access 将日期括在 # 符号中以指示文字值 日期。
    • 使用单引号表示您正在比较字符串/文本。

    因此,对于 Date 数据类型,数据类型不匹配。

    如果 OrderDate 是字符串/文本,那么它应该是:

    SELECT CustomerID FROM Orders WHERE OrderDate BETWEEN '7/8/1996' AND '8/8/1996';
    

    或者:使用CDATE()函数

    SELECT CustomerID FROM Orders WHERE CDATE(OrderDate) BETWEEN CDATE('7/8/1996') AND CDATE('8/8/1996');
    

    【讨论】:

    • Vignesh 所说的“CDATE()”函数可以拉动它。一位前数据库设计师告诉我,日期/时间字段包含机器时间,因此您永远不会知道确切的输入时间
    【解决方案2】:

    这可能是一个原因,但我不确定。

    您系统中的日期时间格式和存储的日期时间格式可能不同。根据我的经验,这也会引发错误。只需尝试更改格式 dd/mm/yy 格式或仅在查询中设置日期时间格式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-28
      • 1970-01-01
      相关资源
      最近更新 更多