SQLite3插入时间实例
能够将时间插入sqlite3,并能够按时间区间搜索。
void my_first_sqlite3_func()
{
int i;
sqlite3 *db;
sqlite3_stmt *stmt;
char name[16], occ[16];
char *sql_drop="drop table if exists people;";
char *sql_create="create table people (id, time, blob);";
char *sql_insert="insert into people values (?, ?, ?);";
// char *sql_select="select * from people;";
char *sql_select="select * from people where time between datetime('2012-04-12 20:35:10.30') and datetime('2012-04-12 20:35:30.30');";
int len = strlen(sql_select);
sqlite3_open("mydb.db", &db);
sqlite3_exec(db, "PRAGMA synchronous = OFF; ", 0,0,0);
sqlite3_prepare(db, sql_drop, strlen(sql_drop), &stmt, NULL);
sqlite3_step(stmt);
sqlite3_prepare(db, sql_create, strlen(sql_create), &stmt, NULL);
sqlite3_step(stmt);
char *data = "fjaksdjfkasdjfklasjdkfjasdkfjksadjfklsdajfksdajfklsdjkfljsdakfkjdgkadjfkajkfajskfljasdlkfjadsk";
sqlite3_prepare(db, sql_insert, strlen(sql_insert), &stmt, NULL);
printf("begin write!\n");
char myTime[30];
for(i=10;i<50;i++)
{
sprintf(myTime, "2012-04-12 20:35:%d.30", i);
int len = strlen(data);
sqlite3_bind_int(stmt, 1, i);
sqlite3_bind_text(stmt, 2, myTime, strlen(myTime), NULL);
sqlite3_bind_blob(stmt, 3, data, len, NULL);
sqlite3_step(stmt);
sqlite3_reset(stmt);
}
printf("finish write!\n");
printf("begin search!\n");
sqlite3_prepare(db, sql_select, strlen(sql_select), &stmt, NULL);
i=0;
while(SQLITE_DONE !=sqlite3_step(stmt))
{
int id = sqlite3_column_int(stmt, 0);
char * time = (char *)sqlite3_column_text(stmt, 1);
int bytes = sqlite3_column_bytes(stmt, 2);
char *out_data = (char *)sqlite3_column_blob(stmt, 2);
i++;
printf("%d %s\n", i, time);
}
printf("finish search!\n");
sqlite3_finalize(stmt);
sqlite3_close(db);
}
int main()
{
my_first_sqlite3_func();
getchar();
return 0;
}