Android / java Sqlite:如何检索最大日期时间?

时间:2012-12-12 10:50:59

标签: java android sqlite

以下是我从sqlite db获得的查询的快照。

在谷歌上搜索并阅读了一些问题之后,我已经知道使用像max()这样的聚合函数来检索最大日期时间是不可能的,因为sqlite不支持很多数据类型但是将数据类型视为{{1 }}

因此,我已将此数据置于textList级别。那么我现在怎样才能从这个列表中获得最大日期时间。

  

java中是否有这种格式的直接构造。或者我们在sqlite级别有一些我找不到的东西。

Sqlite returned data

4 个答案:

答案 0 :(得分:18)

文本可以在SQLite中进行比较,排序和排序。

您的格式似乎是YYYY-MM-dd hh:mm:ss。幸运的是,订购此格式的结果是按日期排序。

select current_test_id from someTable order by test_datetime desc limit 1

select current_test_id, max(test_datetime) from someTable

(或其他东西,对第二个不完全确定)

答案 1 :(得分:2)

如果您设置日期时间字段文本的类型,则可以执行以下查询 但是datetime必须是yyyy-mm-dd hh:mm:ss

select max(datetime) from tableName;

答案 2 :(得分:0)

一种常见的方法是存储转换后的数据。

使用date.getTime()从日期实例和Date date = new Date(timestamp);获取长时间以从时间戳中获取日期对象。

在您的数据库中有一个很长的时间后,您可以执行任何所需的排序/比较。

答案 3 :(得分:0)

从一组Time of type(String)中检索最大值我们必须使用子字符串进行一些连接。使用此查询最大或最小时间可以使用sql lite查找

select max(datetime(case 
when substr(TimeIn,7,2)='PM' 
then substr(TimeIn,1,2)+12 
else substr(TimeIn,1,2) 
end  || ':' || substr(TimeIn,4,2) || ':' || '00'))  
from tablename 
where Date='10/06/2016'