0

我在mysql中有一个小问题,我不知道如何解决它。

场景是这样的:

用户插入此日期:07.11.1986

我有一个包含 3 列的表:数据、时间、gmt 我如何告诉 sql 从表中显示这两个值:

|   data    |   time   |   gmt    |
|-----------|----------|----------|
|28.09.1986 | 03:00:00 | 03:00:00 |
|29.03.1987 | 02:00:00 | 04:00:00 |

很明显,用户插入的日期介于这两个值之间。

4

1 回答 1

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)
于 2013-08-02T14:10:13.567 回答