日期存储在sqlite表中的日期('15:20:16',strftime('%H:%M:%S'))。是否正确?

时间:2013-02-26 07:22:10

标签: android sqlite android-sqlite

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浏览器上看到商店数据时,它存储如下,

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

在日期字段中 - >的日期( '2013年2月14日',的strftime( '%Y-%间 - %d'))

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

2 个答案:

答案 0 :(得分:2)

您正在构建的SQL函数未执行但存储为字符串。您可以将日期存储为格式化字符串或长(从unix纪元开始的时间)。

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

答案 1 :(得分:0)

您应该将它作为long值存储在数据库中,然后使用适当的类(Calendar,Date,DateFormat)在代码中对其进行操作