我正在尝试创建一个名称为当前日期的表。
这是我尝试使用的表名
static String date = new SimpleDateFormat("dmmmyy", Locale.getDefault()).format(new Date());
public static String table_name=date;
但它显示了此错误
unrecognized token: "26_10_2018" (code 1): , while compiling: INSERT INTO 26_10_2018(quentity_cl,price_cl,item_Cl,spinner_cl) VALUES (?,?,?,?)
我的目的是使用当前日期设置表格名称。 谢谢。
答案 0 :(得分:1)
表名不能以数字开头,您可以替换为:
String tableName = "[26_10_2018]"
答案 1 :(得分:0)
我相信您可以根据以下内容进行操作,即可以解决以下事实:表名(以及列的整体触发器的名称....)除非另有说明,否则不能以数字开头,{{3} }:-
public class DBHelperNewtablePerDay extends SQLiteOpenHelper {
public static final String DBNAME = "mydb";
public static final int DBVERSION = 1;
public static final String COL_DAILY_ID = BaseColumns._ID;
public static final String COl_DAILY_DATA = "_data";
SQLiteDatabase mDB;
private String mTodaysTable;
DBHelperNewtablePerDay(Context context) {
super(context, DBNAME, null, DBVERSION);
mDB = this.getWritableDatabase();
createTodaysTable();
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
}
private void createTodaysTable() {
String table_name = "[" + dateTodayinDD_MM_YYFormat() + "]";
Cursor csr = mDB.query("sqlite_master",null,"name=?",new String[]{table_name},null,null,null);
if (csr.getCount() < 1) {
mDB.execSQL("CREATE TABLE IF NOT EXISTS " + table_name + "(" +
COL_DAILY_ID + " INTEGER PRIMARY KEY, " +
COl_DAILY_DATA + " TEXT " +
")");
}
mTodaysTable = table_name;
}
private String dateTodayinDD_MM_YYFormat() {
return new SimpleDateFormat("dd_MM_yyyy", Locale.getDefault()).format(new Date());
}
public String getTodaysTableName() {
return mTodaysTable;
}
}
getTodaysTableName
方法将返回当天的表格。