【问题标题】:SQL statement not working - "Operand type clash: date is incompatible with int'SQL 语句不起作用 - “操作数类型冲突:日期与 int 不兼容”
【发布时间】:2012-02-21 10:29:12
【问题描述】:

我有一个表,我试图返回特定日期的 Time 和 Productno 列。当我尝试以下 SQL 命令时,它返回错误:“操作数类型冲突:日期与 int 不兼容”。 我在论坛上进行了研究,这是大多数人实现类似事情的方式,这让我感到困惑。 以下字段的数据类型如下: 日期:日期。时间:时间(7)。产品编号:int。

SELECT        Date, Time, Productno
FROM            Products
WHERE        (Date = 07 / 09 / 2008)

请问我哪里出错了?

谢谢。

【问题讨论】:

  • 尝试使用 Date = '07/09/2008'

标签: mysql sql asp.net-mvc-3


【解决方案1】:

您的日期格式不正确,需要加引号并稍微重新排列。

WHERE        (Date = 'Year-Month-day')

或者说

WHERE        (Date = '2008-09-07')

【讨论】:

  • 谢谢,我尝试了上述方法,但出现以下错误:“无效的列名'日期'。无效的列名'2008-09-07'。
  • 日期是 SQL 中的一个关键字,尝试在它周围加上引号,这样你就得到了“日期”,请参阅这篇文章以获取更多详细信息 dev.mysql.com/doc/refman/5.5/en/reserved-words.html。另外,您确定列名的大小写正确,应该是日期还是日期?
【解决方案2】:

(日期 = 07 / 09 / 2008)

在这里,您将 (int)7 除以 (int)9,然后除以 (int)2008。所以07 / 09 / 2008 是一些计算的整数结果。 为了传递日期,您应该将其放在引号中。

【讨论】:

    【解决方案3】:

    使用这个

    SELECT Date, Time, Production
    FROM Products
    WHERE Date="2008-09-07"
    

    日期必须为yyyy-mm-dd 格式

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-31
      • 2016-07-09
      • 1970-01-01
      • 2011-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多