gpt4 book ai didi

java - 将 DATETIME 从 SQLite 解析为 java.SQL.Timestamp 时出错

转载 作者:行者123 更新时间:2023-12-01 16:37:04 26 4
gpt4 key购买 nike

我正在使用 java 11 和 SQLite 3.30.1 制作桌面 Windows PC 应用程序。在我的 sql 表“Alarms”中,我有一个日期 (DATETIME) 列,我尝试使用 jdbc resultset.getTimestamp() 检索它。但我收到以下错误:“java.sql.SQLException:解析时间戳时出错”。由于这是一个警报管理器,我想存储日期+时间。我还希望能够从另一个日期中减去 2 个日期。这是我的闹钟表:

CREATE TABLE "alarms" (
"id" INTEGER NOT NULL,
"date" DATETIME NOT NULL,
"name" TEXT,
"text" TEXT NOT NULL,
PRIMARY KEY("id")
);

这是我的 Alarms java 类:

import java.io.Serializable;
import java.sql.Timestamp;

public class Alarms implements Serializable {

private int id;

private Timestamp date;

private String name;

private String text;

public Alarms() {
}

public Alarms(int id, Timestamp date, String name, String text) {
this.id = id;
this.date = date;
this.name = name;
this.text = text;
}

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public Timestamp getDate() {
return date;
}

public void setDate(Timestamp date) {
this.date = date;
}

public String getText() {
return text;
}

public void setText(String text) {
this.text = text;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

@Override
public String toString() {
return name;
}
}

这是我的java jdbc方法:

    public ObservableList<Alarms> getAlarms() {

alarmsList.clear();
try {
s = "SELECT * FROM alarms";

statement = connection.createStatement();
resultSet = statement.executeQuery(s);
while (resultSet.next()) {

Alarms al = new Alarms();
al.setId(resultSet.getInt(1));
al.setDate(resultSet.getTimestamp(2));
al.setName(resultSet.getString(3));
al.setText(resultSet.getString(4));

alarmsList.add(al);

}
return alarmsList;

} catch (SQLException throwables) {
throwables.printStackTrace();
}
return null;
}

所以问题是,如何使用 jdbc 在 SQLite 中存储、插入和检索日期+时间?我做错了什么?

最佳答案

根据 spec,SQLite 中没有 DATETIME 类型.

它将被转换为NUMERIC。您可以根据请求使用各种功能来获得您想要的:date & time functions

关于java - 将 DATETIME 从 SQLite 解析为 java.SQL.Timestamp 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61932273/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com