我正在开发一个android项目,它从数据库中检索信息并存储它(使用SqLite for Java端)。
这是我的要求:
String Query =
"SELECT xxx.APP_ID " + "FROM xxx INNER JOIN yyy ON
xxx.APP_ID = yyy.APP_ID " +
"WHERE date('"+mydate+"') BETWEEN date(xxx.APP_DATEBEGIN) AND date(xxx.APP_DATEEND)
" +
"AND (yyy.USR_ID = " + myid + ") " +
"ORDER BY xxx.APP_DATEBEGIN";
mydate
格式为:YYYY-MM-DD HH:MM:SS
,其格式与数据库中的日期相同。
我使用convert执行相同的请求(Sql server端),工作正常。我认为关键字date
在SqLite中不可用。
还有另一种方法吗?
答案 0 :(得分:1)
在SQLite中,您不需要使用任何函数来表示日期 - 只需使用包含日期的纯字符串:SQLFiddle demo。
一致SQLite没有预留用于存储日期和/或时间的存储类。相反,SQLite的内置日期和时间函数能够将日期和时间存储为TEXT,REAL或INTEGER值:
- TEXT as ISO8601字符串(“YYYY-MM-DD HH:MM:SS.SSS”)。
- 真实的朱利安日数,即公元前4714年11月24日格林威治中午以来的天数。根据预感格里高利历。
- INTEGER as Unix Time,自1970-01-01 00:00:00 UTC以来的秒数。
答案 1 :(得分:1)
下面:
http://www.sqlite.org/datatype3.html
在1.2节你可以看到约会格式的选项(我也建议将这个网站加入书签,因为它非常有用)
我个人喜欢使用UNIX UTC时间系统,因为使用>,<<<和=它是一种通用系统,因为它不关心区域化。