DATETIME に基づいてテーブルからエントリのサブセットを選択しようとしています。コマンドラインで、次のように入力します
SELECT * FROM routes_table WHERE time > '2012-05-28 11:01:01' ORDER BY time
私は得る
mysql> SELECT * FROM routes_table WHERE time > '2012-05-28 11:01:01' ORDER BY time;
+-----------+--------------+------+---------------------+--------------+
| driver | type | num | time | destination |
+-----------+--------------+------+---------------------+--------------+
| Ma Lvjing | Bus | B127 | 2012-06-22 15:00:00 | Colina Hotel |
+-----------+--------------+------+---------------------+--------------+
1 row in set (0.00 sec)
ただし、JDBC を介してまったく同じクエリを実行すると、「2012-05-28 11:01:01」より前の時刻のエントリを含む、テーブルのすべての結果が得られます。なぜこれが起こっているのですか?
これは、JSP の JDBC コードの一部です。
String database = "routes";
String routes_table = "routes_table";
String column_time = "time";
<%
try {
Class.forName("com.mysql.jdbc.Driver"); //Load the MySQL driver
con = DriverManager.getConnection("jdbc:mysql://localhost/"
+ database, "root", "admin");
stmt = con.createStatement();
String currentDATETIME = new TimeToolbox().getCurrentDATETIME();
rs = stmt.executeQuery("SELECT * FROM " + routes_table + " WHERE "
+ column_time + " > '" + currentDATETIME + "'"
+ " ORDER BY " + column_time);
%>