我应该将核心数据中的日期字段分解为月,日和年,以便按月和年轻松分组和获取日期吗?

时间:2015-10-20 02:37:44

标签: swift core-data

如何从swift中的日期开始按月和年执行等效的SQL提取/获取记录?

两个要求如下:
按月和年列出记录

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

显示年度和月份以下的交易。

编辑:我的意思是核心数据。在SQL"中改写了#34;等价物相当于SQL"澄清。

1 个答案:

答案 0 :(得分:1)

CoreData会将日期存储为双精度数,这是NSDate的内部格式。

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

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

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

对于更精细的控制,您还可以为年,月和日保留单独的属性。

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

请记住,CoreData在大多数数据库中都使用了SQLite,但它的行为特征却截然不同。

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