以下是我从sqlite db获得的查询的快照。
在谷歌上搜索并阅读了一些问题之后,我已经知道使用像max()
这样的聚合函数来检索最大日期时间是不可能的,因为sqlite不支持很多数据类型但是将数据类型视为{{1 }}
因此,我已将此数据置于text
或List
级别。那么我现在怎样才能从这个列表中获得最大日期时间。
java中是否有这种格式的直接构造。或者我们在sqlite级别有一些我找不到的东西。
答案 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'