SQL和Java日期比较

时间:2014-03-11 07:28:52

标签: java sql

我正在重写我的疑问。我的java.sql.Timestamp值类似于“2014-02-12 17:40:16.0”。我想将其与DB中的列进行比较,该列的类型为“TIMESTAMP WITH LOCAL TIMEZONE”,该列中的值将为“12-FEB-14 05.40.41.385416000 PM”之类的格式。当我将它与java程序中的确切时间戳值进行比较时,我没有得到输出。但如果我给出的时间差大于五个半小时,那么我将得到输出。

谢谢!

3 个答案:

答案 0 :(得分:0)

首先,确保您的str变量的格式类似于2013-03-11 12:23:34.0

然后,您可以直接使用str构建时间戳:

stmt.setTimestamp(1, java.sql.Timestamp.valueOf(str));

答案 1 :(得分:0)

您表格中列的数据类型不应该是约会,而是约会时间。然后比较将是这样的:

java.util.Date date = yourquery();
Timestamp timestamp = new Timestamp(((Date) str).getTime());
statement = connection.statement("select * from table where datecolumn >= ?");
statement.setTimestamp(1, timestamp);

希望这有帮助!

答案 2 :(得分:0)

您可以使用setDate中的PreparedStatement方法。无需创建Timestamp对象。

connection.statement("select * from table where datecolumn >= ?");
statement.setDate(1, dateObject);