[英]Sqlite Query is not working properly
我创建了一个包含String
列的数据库,其中包含String
格式(dd / mm / yyyy)的日期。 我想从该表中获取两个给定日期之间的数据,但是当我尝试以下查询时,我发现选择的月份和年份没有任何区别; 它只比较“ dd / mm / yy”中的“ dd”字段。
下面的查询将显示每月和每年第14到25天之间的所有数据。 我需要给定日期,月份和年份之间的数据。
Select * from RunningLog
where CAST(RunDate AS DATETIME) between CAST('14/04/2011' AS DATETIME) and
CAST('25/04/2011' AS DATETIME)
Sqlite3文档没有说它可以转换日期时间: http ://www.sqlite.org/lang_expr.html(请参阅Cast表达式数字)。 您为什么不使用Java做到这一点? 我的意思是,您如何将日期存储在数据库中? 我强烈建议您节省很长的时间(Unix时间); 这样,您就可以轻松地获得几个代表确切日期和时间的长数字,并使用它们来查询表。
建议:使用数据库中的Datetime字段并将JodaTime用作时间库。
将日期时间解析为DateTime对象非常容易,然后您可以使用许多有用的方法来比较和处理日期。
而且,您的SQL查询会更好。
您可以计算两个日期之间的秒数。 这是一个示例:SELECT strftime('%s','now')-strftime('%s','2004-01-01 02:34:56');
根据差异的符号,您可以说一个日期是否早于另一个日期。 在您的情况下,您必须进行两个比较,因此您必须验证两个差异的符号。 在这里您可以找到其他示例,也许它们可以为您提供其他建议(http://www.sqlite.org/cvstrac/wiki?p=DateAndTimeFunctions)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.