Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何仅在SQLite中存储时间?_Android_Sqlite_Datetime_Android Sqlite - Fatal编程技术网

Android 如何仅在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没有为存储日期而预留的存储类 和/或时间。相反,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.nativePrepareStatem‌​ent(本机方法)

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
 +  ");");