如何设置MYSQL日期或日期时间变量,使这个简单的查询工作?

时间:2017-03-10 16:03:25

标签: mysql sql variables

如何设置一个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 |
+ -------- + ------------------- +

1 个答案:

答案 0 :(得分:1)

你的尝试中有一个错字。而不是:

WHERE DATE(last_updated) <=  @date_To   --0 Rows

删除下划线:

WHERE DATE(last_updated) <=  @dateTo 

变量需要与定义匹配。