Java Android:Android.database.sqlite.SQLiteException on rawQuery
无法检测应用程序崩溃的原因。变量Java Android:Android.database.sqlite.SQLiteException on rawQuery,java,android,sqlite,android-sqlite,sqliteexception,Java,Android,Sqlite,Android Sqlite,Sqliteexception,无法检测应用程序崩溃的原因。变量StartDate和lastTimeCalculateValue很长 Cursor c=MyApplicationExtendsClass.database.rawQuery(“从“+MyApplicationExtendsClass.locationTableName+”中选择*,其中[Date]>=”+新的简化格式(“yyyy-MM-dd HH:MM:ss.SSS”,Locale.US)。格式(StartDate)+”和[Date]尝试更改 SimpleDat
StartDate
和lastTimeCalculateValue
很长
Cursor c=MyApplicationExtendsClass.database.rawQuery(“从“+MyApplicationExtendsClass.locationTableName+”中选择*,其中[Date]>=”+新的简化格式(“yyyy-MM-dd HH:MM:ss.SSS”,Locale.US)。格式(StartDate)+”和[Date]尝试更改
SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS", Locale.US)
到
这是日期的默认SQL格式
请看我的回答:
更新:
链接的第一部分:
SQLite supports five date and time functions as follows:
1. date(timestring, modifier, modifier, ...)
2. time(timestring, modifier, modifier, ...)
3. datetime(timestring, modifier, modifier, ...)
4. julianday(timestring, modifier, modifier, ...)
5. strftime(format, timestring, modifier, modifier, ...)
要以毫秒为单位获得预测值,可以使用以下转换:
CAST((julianday('your_date') - 2440587.5)*86400000 As INTEGER)
说明:
julianday(“您的日期”)
返回自公元前4714年11月24日格林威治中午以来的天数
julianday(“您的_日期”)-2440587.5
返回大纪元时间内的天数(1970年)
*86400000
将其转换为毫秒(24*60*60*1000)
找到了
然后你可以用=
或者也可以用..和..
之间的进行整数比较这是完整的错误信息吗?是的,这是我从google play控制台得到的所有信息,我无法重现错误。你的数据库中的日期是什么格式的?你检查过链接了吗?数据库中日期列的格式是yyyy-MM-dd-HH:mm:ss
我尝试用毫秒记录,它可以工作,因为SQLite显然忽略了这一部分。我检查了数据库,但它不存在。我不认为这是一个问题,因为在这种情况下,应用程序无法工作。这个问题发生在不到5%的用户身上,我无法重现。我检查了链接,你的建议对我来说是不可接受的,因为我需要毫秒的精度,或者在最坏的情况下是秒而不是天。好的,看看我的更新,它应该允许你使用毫秒精度谢谢你的建议,我会尝试,但我现在不能,我对另一个应用程序有一些紧急修改。我在尝试时报告结果。
SimpleDateFormat("yyyy-MM-dd", Locale.US)
SQLite supports five date and time functions as follows:
1. date(timestring, modifier, modifier, ...)
2. time(timestring, modifier, modifier, ...)
3. datetime(timestring, modifier, modifier, ...)
4. julianday(timestring, modifier, modifier, ...)
5. strftime(format, timestring, modifier, modifier, ...)
CAST((julianday('your_date') - 2440587.5)*86400000 As INTEGER)