1260: 无法在指定类型之间进行转换

1260: It is not possible to convert between the specified types

我有一个问题-

DELETE FROM invoice
WHERE inv_date <  2018-03-31 - INTERVAL(72) MONTH TO MONTH)

当我执行时,我得到一个错误说明-

1260: 无法在指定类型之间进行转换。

“2018-03-31”有什么问题?我应该怎么写才能执行并得到结果?

很确定我们已经在这里回答了这个问题:

身为无名之马;)建议,一定要先看说明书

a_horse_with_no_name in a 所述,您需要使用 DATETIME 文字,而不是一系列整数减法:

DELETE FROM invoice
 WHERE inv_date <  DATETIME(2018-03-31) YEAR TO DAY - INTERVAL(72) MONTH TO MONTH

或者:

DELETE FROM invoice
 WHERE inv_date <  DATETIME(2018-03-31) YEAR TO DAY - 72 UNITS MONTH

在标准 SQL 中,您可以这样写:

DELETE FROM invoice
 WHERE inv_date <  DATE '2018-03-31' - INTERVAL '72' MONTH