簡體   English   中英

如何獲得兩個日期之間的天數

[英]How to get the number of days between two dates

我有一種情況,我需要找到兩行之間已經過日期字段的天數。 需要進行計算的行不會排序。

這是表的結構

Folio   DATE    

1       6/1/2015
2       4/1/2015
1       3/1/2015
4       2/1/2015
1       1/1/2015

基本上,我需要按日期排序並僅保留由作品集分組的最后兩個事務。 因此,在此示例中,將忽略2015年1月1日的作品集1的事務。

假設我需要執行以下操作:1。按作品集編號2進行分組。僅計算作品集最后兩次交易之間的天數。 例如,作品集#1僅包含2015年6月1日和2015年3月1日的交易。

我正在尋找的結果:

Folio   FirstDATE   LastDate   #ofDays

1       3/1/2015     6/1/2015    90

任何MySQL專業人士在那里? 我的技能仍處於新手領域。 謝謝!

更新:

我設法提出以下內容:

SELECT 
  SubQuery.`Folio Number`,
  SubQuery.LatestClosing,
  SubQuery.FirstClosing,
  DATEDIFF(SubQuery.LatestClosing, SubQuery.FirstClosing) AS numofdays
FROM (SELECT
    Subquery.`Folio Number`,
    SubQuery.LatestClosing,
    SubQuery.FirstClosing
  FROM (SELECT t.`Folio Number`,
      MAX(t.`Closing Date`) AS LatestClosing,
      (SELECT
          s.`Closing Date`
        FROM MLSFinalimport s
        WHERE t.`Folio Number` = s.`Folio Number`
        ORDER BY s.`Closing Date` DESC
        LIMIT 1, 1) AS FirstClosing,
    FROM MLSFinalimport t
    GROUP BY t.`Folio Number`) SubQuery) SubQuery

這樣生成的結果如下所示:

LatestClosing     First Closing   numofdays
7/20/2016         5/9/2006         3725

這就是我需要的。 但是,我一直試圖為名為“Folio Number”的每一行添加原始列。 我該怎么辦?

非常感謝你。

MySQL的優點在於此? 可能相反.MySQL不支持窗口函數,因此您可以嘗試使用LIMIT/OFFSET的相關查詢:

SELECT p.folio,p.max_d,p.second_d,DATEDIFF(p.max_d,p.second_d) as NumOfDays
FROM (
    SELECT t.folio,MAX(t.date) as max_d,
           (SELECT s.date FROM YourTable s
            WHERE t.folio = s.folio
            ORDER BY s.date DESC
            LIMIT 1,1) as second_d
    FROM YourTable t
    GROUP BY t.folio) p

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM