选择datetime列为某一天的行

时间:2011-11-15 19:57:16

标签: java android sqlite

我正在尝试在Android中编写一个SQLite查询,我从表中选择日期时间列的日期组件(存储为ISO 8601字符串)等于给定日期的所有行。基本上,我想选择具有特定日期的所有行,而忽略时间。

如何实现这一目标?

4 个答案:

答案 0 :(得分:1)

使用此查询

select * from table_name where day=desired_day;

所以这段代码:

database.query("table_name", null, "day like ?",new String[]{"____-__-daynumber%"}, null, null, null, null); 

查看此documentation以了解我如何找出要使用的sql正则表达式。这个正则表达式允许任何年份和任何月份。如果您只想在特定年份的特定月份中执行特定日期,请执行以下操作:

database.query("table_name", null, "day like ?",new String[]{"1983-03-22%"}, null, null, null, null); 

这将是寻找1983年3月22日的一天

答案 1 :(得分:1)

SQLite有一些date time functions。在您的情况下,选择可能如下所示:

select * from table where date(your_date_time_column) = iso_8601_date_only_value;

答案 2 :(得分:0)

SELECT * FROM test 
        WHERE strftime('%Y-%m-%d', timecol)=strftime('%Y-%m-%d', '2008-04-12')

答案 3 :(得分:0)

您可以始终使用00:00:00和23:59:59作为开始和结束时间,只需在原始查询中使用< =和> =,例如......

SELECT * FROM the_table WHERE the_datetime_column >= '2011-11-15 00:00:00' AND the_datetime_column <= '2011-11-15 23:59:59'