2016-08-09 64 views
-1

Wie Sie Bulk-Daten in SQLite Datenbank vom aktuellen Monat bis nächsten 2 Monat einfügen.SQL-Anweisung zum Einfügen von Daten in der Datenbank für den aktuellen Monat in die nächsten 2 Monate

Ich möchte aktuellen Monat Daten in SQLite mit allen values (0,0,0)(?,?,?);

NSString *myString = [NSString stringWithFormat:@"insert into %@(\"month\", \"date\", \"time\") Values(?, ?, ?)",tableName]; 

Ich möchte vom aktuellen Monat Startdatum auf nächsten 3 Monate Daten in timesheetTable einfügen.

+0

Aus welcher Tabelle möchten Sie Daten einfügen? –

+0

timesheetTable ich möchte einfügen – KkMIW

+0

kkMIW überprüfen Sie meine Antwort.Es funktioniert perfekt für Sie. – user3182143

Antwort

0

Versuchen Sie diesen Code:

NSString *myString = [NSString stringWithFormat:@"insert into %@(month, date, time) Values('%@', '%@', '%@')",tableName,month,date,time]; 
0

Ich habe versucht, die Probe für Sie, und ich habe die Lösung. Von Aktuelles Datum auf die nächsten zwei Monate

NSCalendar *gregorian = [NSCalendar calendarWithIdentifier:NSCalendarIdentifierGregorian]; 
NSInteger yearCurrent = [gregorian component:NSCalendarUnitYear fromDate:[NSDate date]]; 
NSLog(@"The year is: %ld", yearCurrent); 

NSCalendar *cal = [NSCalendar currentCalendar]; 
NSDateComponents *compo = [cal components:NSCalendarUnitMonth fromDate:[NSDate date]]; 
NSInteger month = compo.month; 
NSLog(@"The month is: %ld", month); 

NSDateComponents *compDay = [cal components:NSCalendarUnitDay fromDate:[NSDate date]]; 
NSInteger dateDay = compDay.day; 
NSLog(@"The dateDay is: %ld",dateDay); 


NSDate *firstDateOfMonth = [self getDateOfMonth:yearCurrent :month :dateDay]; 
NSDate *firstDateOfNextTwoMonth = [self getDateOfMonth:yearCurrent :month + 2 :dateDay]; 
NSDateComponents *component = [[NSCalendar currentCalendar] components:NSCalendarUnitDay fromDate:firstDateOfMonth toDate:firstDateOfNextTwoMonth options:0]; 
NSInteger totalDays = [component day]; 
NSLog(@"The total days are %ld", totalDays); 


- (NSDate *)getDateOfMonth:(NSInteger)year:(NSInteger)month :(NSInteger)day 
{ 
    NSDateComponents *dc = [[NSDateComponents alloc] init]; 
    dc.year = year; 
    dc.month = month; 
    dc.day = day; 
    return [[NSCalendar currentCalendar] dateFromComponents:dc]; 
} 

Die Druckergebnisse sind

The year is: 2016 
The month is: 8 
The dateDay is: 9 

Schließlich Gesamt Tage

The total days are 61 

Jetzt Sie Gesamtzahl der Tage ot, so in for-Schleife die eingestellte

for(int i=0;i<totalDays;i++) 
{ 
    //Do your stuff here...... 
    NSString *myString = [NSString stringWithFormat:@"insert into %@(month, date, time) Values(?, ?, ?)",tableName]; 
    sqlite3_stmt *stment=nil; 
    if(sqlite3_prepare_v2(database,[strQuery UTF8String] , -1, &stment, NULL)==SQLITE_OK) 
    { 
     sqlite3_bind_text(stment, 1, [strMonth UTF8String], -1, SQLITE_TRANSIENT); 
     sqlite3_bind_text(stment, 1, [strDate UTF8String], -1, SQLITE_TRANSIENT); 
     sqlite3_bind_text(stment, 1, [strTime UTF8String], -1, SQLITE_TRANSIENT); 
     sqlite3_step(stment); 
     sqlite3_reset(stment); 
    }   
} 
1

Wenn Sie Daten aus einer anderen Tabelle einfügen möchten, können Sie Folgendes versuchen:

NSString *query = [NSString stringWithFormat:@"INSERT INTO %@(month,date,time) Values (SELECT month,date,time FROM timesheetTable WHERE dateFieldName between date('now','start of month') and date('now','start of month','+2 month')",tableName];