Android 如何在SQLite数据库中搜索特定文本的列?

Android 如何在SQLite数据库中搜索特定文本的列?,android,sqlite,search,text,Android,Sqlite,Search,Text,更具体地说,我的只读数据库的前两列是行号(id integer主键),以及文本格式为7/21/2011 HH:MM:SS PM的日期和时间。在我的Android应用程序中,用户选择开始和结束时间(HH:MM),然后以图形方式显示该时间间隔的数据。如何在数据库的第二行搜索输入的时间?我不熟悉SQL时间命令。如果选择所有行,然后在java代码中使用日期对象及其.compareTo()方法处理它们,则只能显示用户感兴趣的行。我不熟悉SQL时间命令。如果选择所有行,然后在java代码中使用日期对象及其.

更具体地说,我的只读数据库的前两列是行号(id integer主键),以及文本格式为7/21/2011 HH:MM:SS PM的日期和时间。在我的Android应用程序中,用户选择开始和结束时间(HH:MM),然后以图形方式显示该时间间隔的数据。如何在数据库的第二行搜索输入的时间?

我不熟悉SQL时间命令。如果选择所有行,然后在java代码中使用日期对象及其.compareTo()方法处理它们,则只能显示用户感兴趣的行。

我不熟悉SQL时间命令。如果选择所有行,然后在java代码中使用日期对象及其.compareTo()方法处理它们,则只能显示用户感兴趣的行。

因此,如果日期列包含文本(因为SQLite中没有日期),则应使用SQLite函数

    strftime(format, timestring, modifier, modifier, ...)
见文件

因此,SQL查询可能如下所示:

    SELECT * FROM mytable WHERE strftime('MM-DD-YYYY HH:MM:SS', date_column) < strftime('MM-DD-YYYY HH:MM:SS', '7/21/2010 22:00:00')
从mytable中选择*,其中strftime('MM-DD-YYYY HH:MM:SS',日期列)

其中,最后一个日期参数将是输入的日期。

因此,如果日期列包含文本(因为SQLite中没有日期),则应使用SQLite函数

    strftime(format, timestring, modifier, modifier, ...)
见文件

因此,SQL查询可能如下所示:

    SELECT * FROM mytable WHERE strftime('MM-DD-YYYY HH:MM:SS', date_column) < strftime('MM-DD-YYYY HH:MM:SS', '7/21/2010 22:00:00')
从mytable中选择*,其中strftime('MM-DD-YYYY HH:MM:SS',日期列)

其中最后一个日期参数将是输入的日期。

我使用的是12小时时钟。是否有任何方法可以将AM/PM添加到查询中?恐怕您必须在代码中执行此操作。这里有一个链接可以帮助您解决问题。希望这有帮助。我用的是12小时的时钟。是否有任何方法可以将AM/PM添加到查询中?恐怕您必须在代码中执行此操作。这里有一个链接可以帮助您解决问题。希望这有帮助。