【发布时间】:2022-02-03 03:56:15
【问题描述】:
我正在尝试更新元组中的 endDate,它是 DATE 类型。我已经通过 Java 正确连接到数据库,并且能够运行其他查询。我是 100% 我使用的是 sql.date 类而不是 util.date。但是,它仍然无法满足我在表格行上设置的约束。即:
CHECK(JulianDay(startDate) <= JulianDay(endDate))
我很确定问题与我尝试更新日期的格式有关。请参阅 main 方法中的 1 行。这是代码的sn-p:
public static void main(String[] args) {
updateProjectDeadline(1000, new Date(2026-11-31));
}
private static void updateProjectDeadline(int projectID, Date endDate) {
Connection con = JDBCLogic.connect();
PreparedStatement prepared;
try {
String sql = "UPDATE Project SET endDate = ? WHERE projectID = ?";
prepared = con.prepareStatement(sql);
prepared.setDate(1, endDate);
prepared.setInt(2, projectID);
prepared.execute();
} catch (SQLException e) {
e.printStackTrace();
}
}
如果我将日期作为字符串对象插入,则该方法可以完美运行,但是,约束基本上可以接受任何内容。所以我想让它与 sql.date 对象一起工作。
我通过输入 new Date(System.currentTimeMillis) 使其工作,但是,这会在数据库中以毫秒为单位输入日期,我需要格式为 yyyy/mm/dd。
【问题讨论】:
-
没有日期“2026-11-31”。