- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含日期列(开始日期、结束日期)的表格,我想计算这些日期之间的差异并按月分组。
我可以在几天内得到 datediff,但我不知道如何在月内对它进行分组,有什么建议吗?
Table:
id Start_date End_date days
1234 2014-06-03 2014-07-05 32
12345 2014-02-02 2014-05-10 97
Expected results:
month diff_days
2 26
3 30
4 31
5 10
6 27
7 5
最佳答案
我认为您的预期输出数字有点偏差。您可能需要仔细检查。
我自己使用日历表,但此查询使用 CTE 和日期算法。避免硬编码日期“2014-01-01”和 365 天的时间间隔很简单,但这会使查询更难阅读,所以我直接使用了这些值。
with your_data as (
select date '2014-06-03' as start_date, date '2014-07-05' as end_date union all
select '2014-02-02', '2014-05-10'
), calendar as (
select date '2014-01-01' + (n || ' days')::interval calendar_date
from generate_series(0, 365) n
)
select extract (month from calendar_date) calendar_month, count(*) from calendar
inner join your_data on calendar.calendar_date between start_date and end_date
group by calendar_month
order by calendar_month;
calendar_month count--2 273 314 305 106 287 5
As a rule of thumb, you should never group by the month alone--doing that risks grouping data from different years. This is a safer version that includes the year, and which also restricts output to a single calendar year.
with your_data as (
select date '2014-06-03' as start_date, date '2014-07-05' as end_date union all
select '2014-02-02', '2014-05-10'
), calendar as (
select date '2014-01-01' + (n || ' days')::interval calendar_date
from generate_series(0, 700) n
)
select extract (year from calendar_date) calendar_year, extract (month from calendar_date) calendar_month, count(*) from calendar
inner join your_data on calendar.calendar_date between start_date and end_date
where calendar_date between '2014-01-01' and '2014-12-31'
group by calendar_year, calendar_month
order by calendar_year, calendar_month;
关于按月分组的两个日期之间的postgresql datediff,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25741732/
我想使用sql查询数据库以显示id 1,2,3等之间的时间差异。基本上它会比较其下面的行的所有记录。任何帮助,将不胜感激。 IDCODE DATE TIME DIFFERENCE (M
SQL服务器: DECLARE @Date1 DATETIME SET @Date1 = '2012-26-12 12:00:05 AM' DECLARE @Date2 DATETIME SET @D
SQL服务器: DECLARE @Date1 DATETIME SET @Date1 = '2012-26-12 12:00:05 AM' DECLARE @Date2 DATETIME SET @D
我正在尝试执行我认为是简单的日期差异函数的操作,但是由于某种原因,我的单位值被读取为列(“dd”),因此我一直在获取列,但无法解决错误 我正在使用AWS Athena 我的代码是这样 SELECT "
我有一个包含日期列(开始日期、结束日期)的表格,我想计算这些日期之间的差异并按月分组。 我可以在几天内得到 datediff,但我不知道如何在月内对它进行分组,有什么建议吗? Table: id
我在我的 mongoDB 中有一个集合,它存储提供给客户的服务以及他们的电子邮件地址,如下所示 { "_id" : ObjectId("56a84627f8fd4a136c0e944a"),
我们想计算两个 DateTimeOffset 之间的差异,但是,SQL 返回了错误的值,我们做错了什么? DECLARE @timeInZone1 AS DATETIMEOFFSET DECLARE
我需要计算两个日期之间的 DateDiff(小时),但仅限于工作时间(8:30 - 16:00,没有周末)。然后,按照下面的示例,此结果将放入 Reaction_Time 列中。 ID 日期 reac
我有一个名为 member 的 SQL 表,其中有成员信息以及他们的出生日期。 我需要列出所有 25 岁以上的人。现在,我得到了这个: SELECT * FROM members WHERE DATE
我在我们的旧代码中找到了一个地方,原来的程序员试图计算一个员工是否被雇用了一定年限。计算使用的是受雇日期与今天之间的天数差除以 364。这对我来说没有意义,所以我将其更改为年差。这似乎也给出了错误的答
我在这里在 CF 中解决了一个难题。 您有一个时间戳作为参数传递给服务器。例如 2012-5-10 14:55 . 如果从给定的时间过去了 30 秒,您将如何查看并返回 true或 false ? 规
我正在运行一个简单的 DATEDIFF 查询,但它似乎没有正确计算天数,或者我做错了什么。 如果我跑 PRINT DATEDIFF(Day, 2010-01-20, 2010-01-01) RETUR
我在将分钟转换为小数时遇到了一些问题,即使我已经查看了 SO 的其他回复。 select cast(datediff(minute, min(start_time), min(complete_tim
我需要从 SQL Server 数据库向下游传递一个值,这本质上是两个 时间戳 之间的差异。使用 DATEDIFF 函数就足够简单了。 SELECT DATEDIFF(day, '2015-11-06
有人知道为什么以下返回 8 吗?我预计 8 小时 30 分钟,还是 8.5? declare @start_day datetime; declare @end_day datetime; decla
我想获取相对于当前日期的上个月 SELECT datediff(mm,-1,2-2-2011) 此查询给出67,这是一个错误的值..我哪里出错了? 最佳答案 您可以使用DATEADD 例如。 SELE
我在使用 PHP DateDiff 时遇到问题,我不明白为什么每个时区返回不同的结果,例如在本例中布拉格返回 0 个月,而美国返回 1 个月。 这有什么区别以及我如何按预期返回 1 个月(而不是 30
我有一个名为 date1 的变量,其中包含使用 parseDateTime 生成的 ColdFusion 日期/时间对象。当我转储变量时,我得到 {ts '2014-12-20 15:46:57'}。
我有一个 Excel 文件,它会在添加条目时自动为其添加时间戳。我想要一个脚本来查找第一个条目和最后一个条目之间的时间差(以分钟为单位)。这是我到目前为止所想到的。 Sub Duration() Di
我正在使用 SQL Server我需要知道患者接受治疗的天数。问题是我只能得到 startDate 而不能得到 endDate当我运行查询并按 StartDate 排序时,我得到如下内容: Start
我是一名优秀的程序员,十分优秀!