我在mysql中有一点问题,我不知道如何解决它。
情景如下:
用户输入此日期:07.11.1986
我有一个包含3列的表:data,time,gmt 我怎样才能告诉sql从表中显示这两个值:
| data | time | gmt |
|-----------|----------|----------|
|28.09.1986 | 03:00:00 | 03:00:00 |
|29.03.1987 | 02:00:00 | 04:00:00 |
很明显,用户插入的日期介于这两个值之间。
答案 0 :(得分:0)
这应该这样做(假设你的'数据'列实际上是一个日期时间,而你的用户输入是一个字符串)。 两个单独的查询来获取较低和较高的值,然后与UNION一起加入:
(SELECT * FROM myTable WHERE STR_TO_DATE('07.11.1986', '%d./%m./%Y') < data ORDER BY data ASC LIMIT 1)
UNION ALL
(SELECT * FROM myTable WHERE STR_TO_DATE('07.11.1986', '%d./%m./%Y') > data ORDER BY data DESC LIMIT 1)