11

下面是我从 sqlite db 得到的查询的快照。

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

所以,我把这些数据带到了一个List或一个java水平。那么我现在如何从这个列表中获得最大日期时间。

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

Sqlite 返回数据

4

4 回答 4

19

文本可以在 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

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

于 2012-12-12T11:03:54.547 回答
2

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

select max(datetime) from tableName;
于 2013-12-30T11:32:10.890 回答
0

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

用于date.getTime()从您的 Date 实例中获取 long 并Date date = new Date(timestamp);从您的时间戳中获取日期对象。

一旦你的数据库中有一个 long ,你就可以执行任何你想要的排序/比较。

于 2012-12-12T11:03:18.403 回答
0

要从一组时间类型(字符串)中检索最大值,我们必须使用子字符串进行一些连接。使用此查询最大或最小时间可以使用 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'
于 2016-10-11T10:41:50.137 回答