我的数据库中有一个简单的表:
CREATE TABLE [InformacjeZDziekanatu] (
[_id] INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
[DataWstawienia] DATE NOT NULL,
[DataModyfikacji] DATE NOT NULL,
[Tresc] VARCHAR2 NOT NULL);
在我的应用程序中,我只想获得DataWstawienia
列的值。
我正在使用这种方法:
try {
ResultSet result = stat.executeQuery("select * from InformacjeZDziekanatu order by _id desc limit 5");
int id;
Date dataWst;
Date dataMod;
String tresc;
for(int j = 0 ; j < 5 ; j++) {
result.next();
Object[] lista = new Object[4];
id = result.getInt("_id");
dataWst = result.getDate("DataWstawienia");
dataMod = result.getDate("DataModyfikacji");
tresc = result.getString("Tresc");
lista[0] = id;
lista[1] = dataWst;
lista[2] = dataMod;
lista[3] = tresc;
dane[j] = lista;
}
}
DataWstawienia
列中的所有日期都是今天的日期,但使用上述方法我始终获得1970-01-01日期。
我做错了什么?
答案 0 :(得分:1)
SQLIte没有DATE数据类型。日期需要存储为整数(自Unix Epoch常见以来的秒数)或ISO 8601次(例如2013-10-01T12:12:12)。如果在SQLite模式中说DATE
,则会将值存储为字符串。您将dateWst
的类型更改为String
的解决方案确认您将日期存储为字符串而不是内部日期类型。