1

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

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

我做错了什么?

4

1 回答 1

1

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

于 2013-10-07T04:17:15.073 回答