Android SQLite插入多条记录

时间:2014-01-24 22:09:21

标签: android sqlite date insert records

在我的活动中,我有2个Datepicker,我选择开始日期(例如2014年1月1日)和结束日期(例如2014年1月12日)。然后我必须在他们的日期同时插入12条记录,也就是说,在我的日期字段中会有以下几行:

01/01/2014
01/02/2014
01/03/2014 
01/04/2014 
01/05/2014
01/06/2014
01/07/2014 
01/08/2014
01/09/2014
01/10/2014
01/11/2014 
01/12/2014 

到目前为止只能计算出发日期和结束日期之间的差异,但我不确切知道如何将所有这些记录放在一起。谢谢你的帮助。

我的代码来计算日期之间的差异(JodaTime)

public void diff_date(View v){
    SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd" );
    String date_in = sdf.format( dateAndTime.getTime() );
    String date_out = sdf.format( dateAndTime1.getTime() );
     int differenza_date = Days.daysBetween(new DateTime(date_in), new DateTime(date_out)).getDays(); 

1 个答案:

答案 0 :(得分:2)

与在SQL中一样,您可以插入多行,这样就可以使您的字符串像

一样
INSERT INTO 'tablename' ('column1') VALUES
('val1'),
('val2'),
('val2'),
('val2');

这里插入代码的实现:

public void diff_date(View v){
    SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd" );
    String insertRows = "INSERT INTO 'tablename' ('column1') VALUES";
     String date_in = sdf.format( dateAndTime .getTime() );
     String date_out = sdf.format( dateAndTime1.getTime() );
     int differenza_date = Days.daysBetween(new DateTime(date_in), new DateTime(date_out)).getDays();
     for(int i=1 ; i < differenza_date ; i++)
     {
         // increase i day each time and save it in string 
         insertRows += "("+increasedDate+"),"
     }

     // and here insert into database 
     db.execSQL(insertRows)
     }