java.sql.timestamp 与日期

标签 java sql date

我正在使用带有 Java 和 Eclipse 的 Derby 数据库。我有一个包含 TIMESTAMP 字段的表,我使用一个模型从中填充 JTable。我发现时间戳和数据以及 java.sql 和 java.utils 非常令人困惑。以下代码错误 cannot cast date to timestampmod 是连接 Derby 表和 JTable 的模型。

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

我的目标是获取最新记录的日期并减去 30 天,然后在同一数据库上运行 SQL 查询以查找比该日期更新的所有记录。如何恢复第一个时间戳,减去 30 天,然后使用减法结果作为 WHERE 子句中的条件构建查询。听起来很简单,但我遇到了很大的困难,我觉得我一定错过了一些基本原则。我认为转换为长并再次返回可能是一条路线,但遇到了相同的转换问题。

最佳答案

时间戳声明为

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

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

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 来执行此操作。

关于java.sql.timestamp 与日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8877664/

相关文章:

mysql - 忽略日期转换警告 (MySQL)

mysql - 奇怪的行为 : less rows are scanned without index on the columns in where condition

sql - 编写高级 SQL 选择

mysql - 周的日期格式

javascript - 如何比较日期以确保 Google Apps 脚本每天仅发送一次提醒?

java - 如果使用 hibernate 条件传递所有主题,如何获取用户?

java - 在一个简单的 Maven hibernate 项目中出现错误 "java.lang.NoClassDefFoundError: org/hibernate/cfg/Mappings"

python - 合并两个 pandas DataFrame,其中日期字段在两个月内

java - Hibernate 和 Oracle 夸大序列递增

java - 在编译时自动更改 Java 中的 "const"值的最简单方法