2013-08-02 35 views
0

我有一个小问题在MySQL中,我不知道如何解决它。Mysql显示值,如果我只有用户输入的值

的情况是这样的:

用户插入此日期:1986年7月11日

我有3列的表格:数据,时间,格林尼治标准时间 我怎么能告诉SQL语句显示这些2倍的值表格:

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

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

+0

所以,你要选择的用户输入的日期之前的最后日期,和之后的第一次约会?请问三列的数据类型是什么? –

回答

0

这应该做到这一点(假设你的'data'列实际上是一个日期时间,而你的用户输入是一个字符串)。 两个单独的查询,以获得较低和较高的值,然后连同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) 
+0

谢谢格雷厄姆格里菲斯。效果很好。 – user2646157

相关问题