0
receivedDate="25022013";
receivedTime="150526";

receivedTime=receivedTime.trim();
String HH = receivedTime.substring(0, 2);
String MM = receivedTime.substring(2, 4);
String SS = receivedTime.substring(4, 6);

receivedTime="date('"+HH+":"+MM+":"+SS+"',strftime('%H:%M:%S'))";

receivedDate=receivedDate.trim();
String dd = receivedDate.substring(0, 2);
String mm = receivedDate.substring(2, 4);
String yyyy = "20"+receivedDate.substring(4,6);

receivedDate="date('"+yyyy+"-"+mm+"-"+dd+"',strftime('%Y-%m-%d'))";

ContentValues values=new ContentValues();
values.put(DBConstants.TIME,receivedTime);
values.put(DBConstants.DATE, receivedDate);

masterDataDB.insert(DBConstants.MASTER_DATA_TABLE, null, values);

此日期和时间插入到 TEXT 类型字段中。当我在 Sqlite 浏览器上看到存储数据时,它存储如下,

在时间字段-> date('15:20:16',strftime('%H:%M:%S'))

在日期字段-> date('2013-02-14',strftime('%Y-%m-%d'))

是否正确存储?如果我使用日期函数选择日期和时间,它会正确返回日期吗?

4

2 回答 2

2

您正在构建的 SQL 函数不会执行,而是存储为字符串。您可以将日期存储为格式化字符串或 long(自 unix 纪元以来的时间)。

换句话说,不要存储字符串date('15:20:16',strftime('%H:%M:%S')),而只是存储15:20:16.

于 2013-02-26T07:32:56.457 回答
0

您应该将其作为长值存储在数据库中,然后使用适当的类在代码中对其进行操作(日历、日期、日期格式)

于 2013-02-26T07:27:00.823 回答