【问题标题】:MYSQL Datediff between two dates based on year基于年份的两个日期之间的MYSQL Datediff
【发布时间】:2018-05-05 05:47:36
【问题描述】:

我有两个日期列,分别是开始和结束,我想知道 2018 年第一个日期的 datediff。我正在研究 mysql。

这是我的桌子

图像中的 odate 是开始日期,而 edate 是结束日期。现在我想知道 2018 年 emp_id 的总日期差异。

【问题讨论】:

标签: mysql datediff


【解决方案1】:

odate 小于 '2018-01-01' 时,CASE ... END 返回 '2018-01-01' 否则 odate

datediff(edate, CASE WHEN odate < '2018-01-01' THEN '2018-01-01' ELSE odate END)

【讨论】:

  • 我对 sql 的期望不高,所以您可以编辑查询吗?
  • 你的两个编辑都不适用于我的两行,它给出了不同的结果。
  • 第一行 datediff 需要返回 5,第二行应该返回 4。
  • @Arpan:另一个编辑...希望这次我猜对了。如果不是,那么请考虑编辑您的答案并更清楚地描述此处应适用的规则。仅从示例中执行此操作很乏味。
  • 这是我根据您更新的答案所做的最终查询 SELECT datediff(CASE WHEN edate>concat(YEAR(now()),'-12-31') THEN concat(year(now() ),'-12-31') ELSE edate END, CASE WHEN 日期
【解决方案2】:

说表名是 tableA 和要从中获取差异的结束日期的列名。

SELECT DAYOFYEAR(end_date) as datadiff FROM tableA,

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-02
    • 2013-07-23
    • 1970-01-01
    • 1970-01-01
    • 2014-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多