java.sql.timestamp与日期

时间:2012-01-16 09:03:43

标签: java sql date

我正在使用Java和Eclipse的Derby数据库。我有一个具有TIMESTAMP字段的表,我使用一个模型从中填充JTable。我发现时间戳和数据以及java.sql和java.utils非常混乱。 cannot cast date to timestamp的以下代码行错误。 mod是连接Derby表和JTable的模型。

int rowcount = mod.getRowCount();
java.sql.Timestamp ts = (java.sql.Timestamp) mod.getValueAt(rowcount-1,1);

我的目标是获取最新记录的日期并减去30天,然后在同一数据库上运行SQL查询以查找比该日期更近的所有记录。如何恢复第一个时间戳,减去30天,然后构造一个查询,并将减法结果作为WHERE子句中的条件。听起来很简单,但我遇到了这样的困难,我觉得我必须缺少一些基本原则。我认为转换为长时间和后退可能是路线,但遇到了同样的演员问题。

1 个答案:

答案 0 :(得分:1)

时间戳声明为

public class Timestamp extends java.util.Date { ... }

因此,您无法将日期转换为timstamp,您可以从日期创建时间戳。

Timstamp ts = new Timestamp( date.getTime() );

要减去30天,此序列可能会有所帮助:

Calendar cal = new GregorianCalendar();
cal.setTime( date.getTime() );
cal.add( Calendar.DAY_OF_MONTH, -30 );
Date d30 = cal.getTime();

无论如何,我会尝试仅使用SQL执行此操作。