如何设置一个MYSQL日期或日期时间变量来使这个简单的查询工作?
set @dateTo :=cast('2016-09-30' as date);
SELECT
id, last_updated
FROM
(SELECT * FROM transactions_history WHERE id = 81867533) h
WHERE
DATE(last_updated) <= '2016-09-30' --550 Rows
--DATE(last_updated) <= @date_To --0 Rows
此查询返回550行,但当最后一行替换第二行时,返回0行。
以下是输出的几行(Original Image):
+ -------- + ------------------- +
| id | last_updated |
+ -------- + ------------------- +
| 81867533 | 2016-09-14 22:25:42 |
| 81867533 | 2016-09-14 23:30:21 |
| 81867533 | 2016-09-15 00:39:45 |
| 81867533 | 2016-09-15 00:39:45 |
| 81867533 | 2016-09-15 01:02:03 |
| 81867533 | 2016-09-15 02:28:23 |
+ -------- + ------------------- +
答案 0 :(得分:1)
你的尝试中有一个错字。而不是:
WHERE DATE(last_updated) <= @date_To --0 Rows
删除下划线:
WHERE DATE(last_updated) <= @dateTo
变量需要与定义匹配。