查找每个季度中两个日期之间的天数
Find days between two dates in each Quarter
我在 table (SQLITE)
中有两个日期列
现在我需要的是找出这两个日期之间每个季度出现的天数
For example let's say,
start_Date = 12-Jan-2015
end_Date = 13-Jul-2015
So result should be like:
Quarter 1 = 79 days
Quarter 2 = 91 days
Quarter 3 = 13 days
Quarter 4 = 0 days
我试过下面的查询
SELECT CASE WHEN cast(strftime('%%m', end_date) as integer) BETWEEN 1 AND 3 THEN 'Q1' WHEN cast(strftime('%%m', end_date) as integer) BETWEEN 4 and 6 THEN 'Q2' WHEN cast(strftime('%%m', end_date) as integer) BETWEEN 7 and 9 THEN 'Q3' ELSE 'Q4' END as Quarter, sum(julianday(end_date) - julianday(start_date) + 1) AS Total FROM table WHERE end_date BETWEEN '2015-01-01 00:00:00' AND '2015-12-31 00:00:00' GROUP BY Quarter
但问题是考虑到 end_date,它将显示季度中的所有天数。因此,如果 end_date 的月份是 4,那么所有日期都将显示在第 3 季度。
欢迎提出任何建议。要么只是 sqlite 查询,要么在 ios SDK 中,要么两者都使用。在任何可能的情况下。
谢谢....!!
这在 SQL 中会很笨拙,但鉴于您使用 NSDateComponents
标记了它,看来您知道您需要的基本技术。使用 NSCalendar
:
提供的 NSDateComponents
方法
使用component:fromDate:
获取年份。
使用1月1日和先前确定的年份的分量并调用dateFromComponents:
.
来计算Q1的开始
现在循环:
使用 dateByAddingUnit
(或 dateByAddingComponents
,如果您需要支持较旧的 OS 版本).
查看开始日期和结束日期,将它们与季度的开始和结束进行比较,以计算出该特定季度有多少天(您可以使用 components:fromDate:toDate:options:
来计算天数)。
下个季度重复此操作。
这些是基本步骤。
我在 table (SQLITE)
中有两个日期列现在我需要的是找出这两个日期之间每个季度出现的天数
For example let's say,
start_Date = 12-Jan-2015
end_Date = 13-Jul-2015
So result should be like:
Quarter 1 = 79 days
Quarter 2 = 91 days
Quarter 3 = 13 days
Quarter 4 = 0 days
我试过下面的查询
SELECT CASE WHEN cast(strftime('%%m', end_date) as integer) BETWEEN 1 AND 3 THEN 'Q1' WHEN cast(strftime('%%m', end_date) as integer) BETWEEN 4 and 6 THEN 'Q2' WHEN cast(strftime('%%m', end_date) as integer) BETWEEN 7 and 9 THEN 'Q3' ELSE 'Q4' END as Quarter, sum(julianday(end_date) - julianday(start_date) + 1) AS Total FROM table WHERE end_date BETWEEN '2015-01-01 00:00:00' AND '2015-12-31 00:00:00' GROUP BY Quarter
但问题是考虑到 end_date,它将显示季度中的所有天数。因此,如果 end_date 的月份是 4,那么所有日期都将显示在第 3 季度。
欢迎提出任何建议。要么只是 sqlite 查询,要么在 ios SDK 中,要么两者都使用。在任何可能的情况下。
谢谢....!!
这在 SQL 中会很笨拙,但鉴于您使用 NSDateComponents
标记了它,看来您知道您需要的基本技术。使用 NSCalendar
:
NSDateComponents
方法
使用
component:fromDate:
获取年份。使用1月1日和先前确定的年份的分量并调用
dateFromComponents:
. 来计算Q1的开始
现在循环:
使用
dateByAddingUnit
(或dateByAddingComponents
,如果您需要支持较旧的 OS 版本).查看开始日期和结束日期,将它们与季度的开始和结束进行比较,以计算出该特定季度有多少天(您可以使用
components:fromDate:toDate:options:
来计算天数)。下个季度重复此操作。
这些是基本步骤。