swift - 我是否应该在核心数据中将日期字段分解为月、日和年,以便轻松地按月和年分组和获取日期?

标签 swift core-data

如何在 swift 中按日期按月和年执行 SQL 提取/获取记录的等效操作?

有两个要求:
按月份和年份列出记录

  1. 2015 年 9 月
  2. 2015 年 10 月

显示年份和月份的交易。

编辑:我指的是核心数据。将“SQL 中的等效项”改为“SQL 的等效项”以进行澄清。

最佳答案

CoreData 会将日期存储为 double ,这是 NSDate 的内部格式。

如果您有一个小型数据库,只需将值存储为 NSDate 并根据该值进行过滤。

但是,如果您有一个大型数据库,您可能需要对数据进行更多的非规范化。

您可以存储另一个字段,例如“yyyymmdd”格式,这可以为您提供所需的大部分过滤功能。

为了进行更细粒度的控制,您还可以保留年、月和日的单独属性。

如果您对大量数据进行大量搜索,您可能还想将这些字段设置为索引。

请记住,CoreData 在大多数数据库的底层都使用 SQLite,但它的行为特征非常不同。

没有通用的“最佳”方法,因为它完全取决于您的数据以及您如何使用它。

关于swift - 我是否应该在核心数据中将日期字段分解为月、日和年,以便轻松地按月和年分组和获取日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33227058/

相关文章:

ios - SwiftUI 从列表项 View 中隐藏列表项

ios - 如何防止其他开发人员在 Xcode 中创建现有文件

ios - 忽略 Firebase 子项

iphone - 多线程应用程序中 NSManagedObjectContext 的通用方法

swift - 如何在后台线程中使用新的过滤谓词重新加载 NSFetchedResultsController ?

ios - 将 Swift 类导入 Obj-C 时 : Property not found on object of type

ios - 如何将我的操作添加到标准编辑 tableView 按钮 iOS

arrays - 如何在核心数据中存储自定义对象数组?

cocoa - 将自定义方法添加到子类 NSManagedObject

objective-c - 以编程方式更新核心数据中的属性