如何从java中的SQLite获取日期值

时间:2013-10-06 16:25:34

标签: java sqlite

我的数据库中有一个简单的表:

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日期。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

SQLIte没有DATE数据类型。日期需要存储为整数(自Unix Epoch常见以来的秒数)或ISO 8601次(例如2013-10-01T12:12:12)。如果在SQLite模式中说DATE,则会将值存储为字符串。您将dateWst的类型更改为String的解决方案确认您将日期存储为字符串而不是内部日期类型。