如果我只有用户输入的值,则Mysql显示值

时间:2013-08-02 13:54:38

标签: mysql sql date between

我在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 |
很明显,用户插入的日期介于这两个值之间。

1 个答案:

答案 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)