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)