Android 如何仅在SQLite中存储时间?
如何在SQLite中存储时间 我将时间用作Android 如何仅在SQLite中存储时间?,android,sqlite,datetime,android-sqlite,Android,Sqlite,Datetime,Android Sqlite,如何在SQLite中存储时间 我将时间用作静态最终值。我一直在插入和检索SQLite之间的时间 我提到了谷歌的一些网站: SQLite没有为存储日期而预留的存储类 和/或时间。相反,SQLite的内置日期和时间函数 能够将日期和时间存储为文本、实数或整数 价值观: 文本为ISO8601字符串(“YYYY-MM-DD HH:MM:SS.SSS”)。像朱利安一样真实 day number,自11月12日格林威治中午以来的天数 公元前244714年,根据公历公历。整数 作为Unix时间,自UTC 19
静态最终值。我一直在插入和检索SQLite之间的时间
我提到了谷歌的一些网站:
SQLite没有为存储日期而预留的存储类
和/或时间。相反,SQLite的内置日期和时间函数
能够将日期和时间存储为文本、实数或整数
价值观:
文本为ISO8601字符串(“YYYY-MM-DD HH:MM:SS.SSS”)。像朱利安一样真实
day number,自11月12日格林威治中午以来的天数
公元前244714年,根据公历公历。整数
作为Unix时间,自UTC 1970-01-01 00:00:00以来的秒数。
应用程序可以选择将日期和时间存储在其中任何一个中
格式,并使用内置的日期和
时间函数
但是我很困惑。
我得到了这个错误
原因:android.database.sqlite.SQLiteException:near“From”:语法错误(代码1),编译时:创建表如果不存在proname(ImageID整数、标题文本、From整数、To整数);位于android.database.sqlite.SQLiteConnection.nativePrepareStatement(本机方法)
public static final String[]titles=新字符串[]{“Akilam 360”,“Ipadikku Idhayam”,
“Palsuvai Thoranam”};
公共静态最终字符串[]fromtime=新字符串[]{“05:00:00”、“07:00:00”、“09:00:00”};
公共静态最终字符串[]totime=新字符串[]{“07:00:00”、“09:00:00”、“11:00:00”};
公共静态最终整数[]图像={R.drawable.akilam_360,
R.drawable.ipadikku_idhayam,R.drawable.palsuvai_thoranam};
列表视图列表视图;
列出项目;
内部图像;
线针,sFrom,sTo;
sqlitedb数据库;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.dbcon);
Calendar c=Calendar.getInstance();
int seconds=c.get(日历秒);
int minutes=c.get(Calendar.MINUTE);
int hour=c.get(日历小时);
字符串时间=小时+“:”+分钟+“:”+秒;
timer=(TextView)findViewById(R.id.timer);
timer.setText(时间);
db=openOrCreateDatabase(“MukilProgram”,Context.MODE_PRIVATE,null);
execSQL(“如果不存在,则创建表proname(ImageID整数,标题文本,From TEXT);”;
rowItems=新的ArrayList();
对于(int i=0;i
首先,
中的是SQLite中的保留字。不要将其用作列名
例如,如果您只关心“从早上5点到早上7点”,则根据您拥有的数据的粒度,为“从一天开始算起的秒数”或分钟/小时存储两个INTEGER
字段
如果您需要更复杂的内容(例如,您的时间在午夜重叠,并且from
是一天,而to
是第二天),那么显然,您必须以不同的方式存储数据
你想如何实现这一点取决于你自己,但是从
final String TABLE_NAME = "proname";
db.execSQL("CREATE TABLE IF NOT EXISTS " + TABLE_NAME + "("
+ "ImageID INTEGER, "
+ "Title TEXT, "
+ "FromTime INTEGER, "
+ "ToTime INTEGER" // I think you missed this field
+ ");");
至于代码的其余部分,我不太明白先加载适配器,然后再加载数据库。您可以加载数据库,然后对ListView使用CursorAdapter
除此之外,强烈建议-使用SQLiteOpenHelper
子类。不要将所有SQLite逻辑都塞进活动中。同样,这段代码有效还是错误?因为您在表中只声明了三列,但插入了四个值。代码工作正常,但我声明了三列,因为我正在检查r数据类型是否正确?它在此显示语法错误(代码1),原因是:android.database.sqlite.SQLiteException:near“From”:编译时语法错误(代码1):如果不存在创建表proname(ImageID整数、标题文本、From INTEGER、To INTEGER);在android.database.sqlite.SQLiteConnection.nativePrepareStatement(本机方法)FROM是一个保留的keword,我在这行中怀疑公共静态最终字符串[]fromtime=新字符串[]{“05:00:00”,“07:00:00”,“09:00:00”}是这个吗correct@Udhaya我还以为你在上面的评论中说代码有效:/@Udhaya你对数组的声明很好。我不知道你在问什么
final String TABLE_NAME = "proname";
db.execSQL("CREATE TABLE IF NOT EXISTS " + TABLE_NAME + "("
+ "ImageID INTEGER, "
+ "Title TEXT, "
+ "FromTime INTEGER, "
+ "ToTime INTEGER" // I think you missed this field
+ ");");