下面是我从 sqlite db 得到的查询的快照。
在谷歌搜索并阅读了一些问题之后,我开始知道使用聚合函数来检索最大日期max()
时间是不可能的,因为 sqlite 不支持很多数据类型,但将数据类型视为text
.
所以,我把这些数据带到了一个List
或一个java
水平。那么我现在如何从这个列表中获得最大日期时间。
java中是否有这种格式的直接构造?或者我们是否有一些我找不到的 sqlite 级别的东西。
文本可以在 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
(或其他东西,第二个不完全确定)
如果您设置日期时间字段文本的类型,那么您可以执行以下查询,但日期时间必须是yyyy-mm-dd hh:mm:ss
select max(datetime) from tableName;
一种常见的方法是存储转换后的数据。
用于date.getTime()
从您的 Date 实例中获取 long 并Date date = new Date(timestamp);
从您的时间戳中获取日期对象。
一旦你的数据库中有一个 long ,你就可以执行任何你想要的排序/比较。
要从一组时间类型(字符串)中检索最大值,我们必须使用子字符串进行一些连接。使用此查询最大或最小时间可以使用 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'