我有一个使用CoreData的Objective-C应用程序,而后备存储是一个sqlite数据库。
我正在尝试根据MediaDate为FMDatabase制定查询以访问最新记录。
以下是我要查询的表格,名为MediaAccy
,其MediaDate
字段的类型为timestamp
(如图所示)
这是一个简单地对MediaDate字段进行ORDERS的查询。请注意ZMEDIADATE
字段有2个相同的timestamp
值,并注意guid的顺序。
根据此查询,最近的记录有guid 6BBF7...
现在,请注意这个查询,我从上面给定的一组记录中请求带有MAX日期的记录,并注意结果是guid 2D8AC...
,根据前面的查询,它命令相同按日期排列的数据是第二次到最近的,而不是最近的记录。
真正的最新记录请站起来!
根据sqlite的max()函数文档......
max()聚合函数返回组中所有值的最大值。最大值是在同一列的ORDER BY中最后返回的值
但根据我的结果,事实并非如此。
答案 0 :(得分:1)
经过一些研究,似乎时间戳只是第二个精度,ORDER BY子句文档说......
返回所有ORDER BY表达式求值为相等值的两行的顺序是未定义的。
所以我想我将不得不重新思考这一切。