我有一张桌子
| adsid | user_id | earned_points | redeem_points | dialer_point | app_point | date |
+-------+---------+---------------+---------------+--------------+-----------+---------------------+
| 1 | 1 | 25 | 15 | 23 | 2 | 2015-03-15 19:38:43 |
| 3 | 1 | 25 | 15 | 23 | 2 | 2015-03-15 19:38:43 |
| 2 | 1 | 25 | 15 | 23 | 2 | 2015-03-15 19:38:43 |
| 1 | 2 | 25 | 15 | 23 | 2 | 2015-03-15 19:38:43 |
| 3 | 2 | 25 | 15 | 23 | 2 | 2015-03-15 19:38:43 |
| 2 | 2 | 25 | 15 | 23 | 2 | 2015-03-15 19:38:43 |
| 1 | 3 | 25 | 15 | 23 | 2 | 2015-03-15 19:38:43 |
| 3 | 3 | 25 | 15 | 23 | 2 | 2015-03-15 19:38:43 |
| 2 | 3 | 25 | 15 | 23 | 2 | 2015-03-15 19:38:43 |
| 1 | 4 | 25 | 15 | 23 | 2 | 2015-03-15 19:38:43 |
| 3 | 4 | 25 | 15 | 23 | 2 | 2015-03-15 19:38:43 |
| 2 | 4 | 25 | 15 | 23 | 2 | 2015-03-15 19:38:43 |
| 1 | 5 | 25 | 15 | 23 | 2 | 2015-03-15 19:38:43 |
| 3 | 5 | 25 | 15 | 23 | 2 | 2015-03-15 19:38:43 |
| 2 | 5 | 25 | 15 | 23 | 2 | 2015-03-15 19:38:43 |
| 1 | 6 | 25 | 15 | 23 | 2 | 2015-03-15 19:38:43 |
| 3 | 6 | 25 | 15 | 23 | 2 | 2015-03-15 19:38:43 |
| 2 | 6 | 25 | 15 | 23 | 2 | 2015-03-15 19:38:43 |
| 1 | 7 | 25 | 15 | 23 | 2 | 2015-03-15 19:38:43 |
| 3 | 7 | 25 | 15 | 23 | 2 | 2015-03-15 19:38:43 |
| 2 | 7 | 25 | 15 | 23 | 2 | 2015-03-15 19:38:43 |
| 1 | 8 | 25 | 15 | 23 | 2 | 2015-03-15 19:38:43 |
| 3 | 8 | 25 | 15 | 23 | 2 | 2015-03-15 19:38:43 |
| 2 | 8 | 25 | 15 | 23 | 2 | 2015-03-15 19:38:43 |
+-------+---------+---------------+---------------+--------------+-----------+---------------------+
以下小于日期的查询不起作用
select * from USER_POINTS_MAPPING where 'date' < '2015-03-17';
但是当我做的时候
select * from USER_POINTS_MAPPING where 'date' > '2015-03-17';
它会抛出所有行。这是怎么回事?
答案 0 :(得分:2)
在日期周围尝试不使用'字符(单引号)。在MySQL中,要么不使用任何引号,要么在字段名称周围使用这个`(反引号)。
'date'
表示日期为字符串。将'date'
作为字符串
'2015-03-17'
总是大于`date`
虽然
select * from USER_POINTS_MAPPING where date < '2015-03-17';
表示日期作为字段名称
所以正确的查询是:
{{1}}
答案 1 :(得分:0)
专业提示:请勿使用date
作为列名。这是一个保守的词。如果你必须使用它,用反引号包围它,而不是引号。
where `data` < '2015-03-17'