2013-08-02 68 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

相關問題