MySQL delete Right expr of binary predicate should be value
时间: 2024-04-21 13:25:52 浏览: 9
这个问题是一个 MySQL 数据库中的错误提示。它的意思是,在二元比较运算符中,右侧的表达式应该是一个固定的值,而不是一个变量或表达式。这通常是由于在 WHERE 子句中使用了不正确的语法或操作符导致的。您需要仔细检查您的 SQL 查询语句,并确保使用正确的语法和操作符。如果您需要更多的帮助,可以提供更多的上下文信息,以便我更好地理解您的问题。
相关问题
Doris报错 delete from op_re_st_vw_addr_segm_zl_his where day_id = DATE_FORMAT(NOW(), '%Y-%m-%d %H:00:00') (1105, 'errCode = 2, detailMessage = Right expr of binary predicate should be value')
这个错误通常是由于查询条件中使用了错误的语法,导致无法识别查询条件,或者查询条件的类型不正确。根据你的SQL语句,可能是因为`day_id`列的数据类型不是字符串类型,而你使用了字符串类型的日期作为查询条件。你可以尝试将日期转换为`day_id`列的数据类型,例如:
```
DELETE FROM op_re_st_vw_addr_segm_zl_his WHERE day_id = UNIX_TIMESTAMP(NOW() - INTERVAL MINUTE(NOW()) MINUTE);
```
这个查询语句中,`UNIX_TIMESTAMP`函数将当前时间转换为Unix时间戳,减去当前时间的分钟数可以得到当前小时的整点时间。这样就可以删除`day_id`等于当前整点时间的记录了。当然,如果`day_id`列的数据类型是字符串类型,你也可以使用`DATE_FORMAT`函数将当前时间格式化为字符串类型的日期,例如:
```
DELETE FROM op_re_st_vw_addr_segm_zl_his WHERE day_id = DATE_FORMAT(NOW() - INTERVAL MINUTE(NOW()) MINUTE, '%Y-%m-%d %H:00:00');
```
这个查询语句中,`DATE_FORMAT`函数将当前时间格式化为`YYYY-MM-DD HH:00:00`的字符串类型日期,然后将这个字符串类型日期与`day_id`列进行比较。
mysql中的date(expr)怎么用
MySQL中的date(expr)函数可以将一个日期时间表达式转换为日期格式,返回值为日期类型。使用方法如下:
1. 在MySQL中打开一个数据库连接。
2. 在MySQL中选择一个数据库。
3. 在MySQL中创建一个表格。
4. 在MySQL中插入数据。
5. 在MySQL中使用date(expr)函数将日期时间表达式转换为日期格式。
例如:
SELECT date('2022-01-01 12:00:00');
返回值为:2022-01-01
其中,date(expr)函数的参数可以是一个日期时间表达式,也可以是一个日期时间字符串。