首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何得到(两个日期之间的差异)的总数?

如何得到(两个日期之间的差异)的总数?
EN

Stack Overflow用户
提问于 2013-09-15 04:33:27
回答 2查看 140关注 0票数 1

我有一个节假日,其结构如下:

id : start_date,end_date,user_id,user_id

如何获得用户在前一年的假期数?

我想用正确的语法做这样的事情:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT SUM(end_date - start_date)
FROM holidays
WHERE user_id = 342
    AND YEAR(end_date) = YEAR(CURRENT) - 1
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-15 05:28:27

我认为这应该适用于informix:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT SUM(end_date-start_date)
from holidays
where user_id = 342 and
     YEAR(end_date) = YEAR(TODAY)-1;

注:尚不清楚结束日期是否包括在内。你可能想:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT SUM((end_date-start_date) + 1)
from holidays
where user_id = 342 and
     YEAR(end_date) = YEAR(TODAY)-1;
票数 2
EN

Stack Overflow用户

发布于 2013-09-15 09:40:31

你的查询很好。您没有任何语法改进要做。戈登·林诺夫( Gordon )的方法与你的方法不同之处在于,他使用的是TODAY (即YEAR TO DAY),而不是CURRENT (即YEAR TO FRACTION),但YEAR(CURRENT)YEAR(TODAY)会得到完全相同的结果。

获得不同结果的唯一方法是,如果CURRENTSUM中,比如SUM(CURRENT-start_date)。这样,您就会得到比仅仅日期更精确的数据(您可以得到所需的天数,然后是hh:mm:ss.fff),但是如果您使用了TODAY,那么您就只能得到日期了。

除此之外,一切都很好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18812402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文