SELECT DATE('2023-05-18') AS date, COUNT(*) AS count FROM worker_visit_record WHERE '2023-05-18' >= DATE( NOW()) - INTERVAL 1 DAYAND '2023-05-18' < DATE( NOW()) + INTERVAL 1 DAYGROUP BY DATE( '2023-05-18' );报错
时间: 2023-12-20 22:05:27 浏览: 65
根据你提供的 SQL 语句,我看到其中存在两个问题:
1. 在 `GROUP BY` 子句中,你使用了一个常量 `'2023-05-18'`,而不是你想要分组的日期字段。这将导致 SQL 引擎无法正确地按日期分组。你可以将 `GROUP BY` 子句中的 `'2023-05-18'` 替换为 `DATE(worker_visit_record.date)` (注意 `worker_visit_record` 是你的表名)。
2. 在 `WHERE` 子句中,你使用了 `DATE(NOW())` 来获取当前日期。但是,由于你的查询中指定了一个特定的日期 `'2023-05-18'`,因此应该将 `DATE(NOW())` 替换为 `'2023-05-18'`。这样,你的查询将只返回 `'2023-05-18'` 这一天的访问记录计数。
因此,你可以尝试以下 SQL 语句:
```
SELECT DATE(worker_visit_record.date) AS date, COUNT(*) AS count
FROM worker_visit_record
WHERE worker_visit_record.date >= DATE('2023-05-18') - INTERVAL 1 DAY
AND worker_visit_record.date < DATE('2023-05-18') + INTERVAL 1 DAY
GROUP BY DATE(worker_visit_record.date);
```
希望能够帮到你!
相关问题
SELECT count(wvr.visit_time = NOW()),count(wvr.visit_time = "2023-05-18 12:00:00") FROM worker_visit_record wvr LEFT JOIN ineb_worker iw ON wvr.user_id = iw.user_id LEFT JOIN sys_user su ON su.user_id = iw.user_id 时间不生效
你的 SQL 语句中,使用了 `count` 函数,并在 `count` 函数内部使用了比较运算符 `=`,这是不正确的语法。
如果你想要统计 `worker_visit_record` 表中 `visit_time` 等于当前时间或者等于指定时间的记录条数,可以使用以下 SQL 语句:
```
SELECT COUNT(*) FROM worker_visit_record WHERE visit_time = NOW() OR visit_time = '2023-05-18 12:00:00';
```
需要注意的是,`NOW()` 函数返回的是当前时间,格式为 `YYYY-MM-DD HH:MM:SS`,因此在比较时需要使用字符串类型的时间。同时,如果你的 `visit_time` 字段有时分秒的信息,需要保证格式和传入的时间字符串一致。
阅读全文