【发布时间】:2018-01-31 13:17:28
【问题描述】:
我在mysql数据库中有记录,每条记录都有过期日期 所以我想从我的数据库中选择过期的记录 这是我表的内容:
+-------------+-------------+----------------------+
| username | attribute | value |
+-------------+-------------+----------------------+
| ali | Expiration | 22 Jan 2018 01:01:30 |
| jon | Expiration | 10 Jan 2018 02:02:55 |
| goerge | Expiration | 22 Feb 2018 12:03 |
+-------------+-------------+----------------------+
如您所见,我有 2 个过期帐户
当我尝试选择这些过期记录时,我得到了NULL 结果。
这是我的查询:
SELECT *
FROM radcheck
WHERE DATE_FORMAT(STR_TO_DATE(e.value, '%d %M %y'), '%d %M %y')
<= DATE_FORMAT(NOW(), '%d %M %y');
但查询结果显示这条记录
+-------------+-------------+----------------------+
| username | attribute | value |
+-------------+-------------+----------------------+
| ali | Expiration | 22 Jan 2018 01:01:30 |
| jon | Expiration | 10 Jan 2018 02:02:55 |
| goerge | Expiration | 22 Feb 2018 12:03 |
+-------------+-------------+----------------------+
即使第二条记录 (jon) 还没有过期。 错误在哪里?
【问题讨论】:
-
列值是哪种数据类型???
-
"value" 是一个糟糕的列名。'
-
value的数据类型是varchar 200