【问题标题】:SQL Server: difference in days for two dates in separate rowsSQL Server:不同行中两个日期的天数差异
【发布时间】:2017-08-16 15:11:27
【问题描述】:

我正在使用 SQL Server 2012 并正在编写一份报告,要求我找出两个日期之间的天数差异。

基本上,对于特定的ReportID,我试图找出(ReportCompletedDateReportType = 'PaperReceived')-(ReportCompletedDateReportType = 'Form Completed')之间的天数差异

我试着在下面给出一些记录...

ReportID   ReportType       ReportCompletedDate  
-------------------------------------------------
450        PaperReceived      9/5/2013
450        Form Completed     8/13/2013
451        PaperReceived      9/7/2013
451        Form Completed     7/12/2013
452        PaperReceived      10/6/2013
452        Form Completed     3/13/2013

因此,以ReportID = 450 为例,我想在几天内获得9/5/2013 - 8/13/2013

如果有人也知道如何在日历日和工作日执行此操作,那就太好了……但至少日历日应该没问题。

我不知道该怎么做,通常当两个日期一致时,我更容易弄清楚,但不知道当日期在不同的行时该怎么做。任何建议将不胜感激。

【问题讨论】:

    标签: sql sql-server-2012 case datediff case-when


    【解决方案1】:

    您可以进行自连接以使其显示在“一行”上。像这样:

    SELECT DateDiff(day,BASE.ReportCompleteDate, FORM.ReportCompleteDate) as Diff
    FROM TABLE_NAME_YOU_DID_NOT_SAY BASE
    LEFT JOIN TABLE_NAME_YOU_DID_NOT_SAY FORM ON BASE.ReportId = FORM.ReportID AND FORM.ReportType = 'Form Completed'
    WHERE BASE.ReportType = 'PaperRecieved'
    

    【讨论】:

    • 您可能需要将日期部分添加为 'day' 到 DATEDIFF 语句
    • @AbdullahDibas 谢谢——是的,自从我使用 datediff 已经有一段时间了
    • @Hogan 谢谢,这正是我所需要的!!还有 ty Abdullah。
    【解决方案2】:

    请在下面找到其中一种方法...

    SELECT RCVD.REPORTID
        , DATEDIFF(DAY, RCVD.REPORTCOMPLETEDDATE, CMPLD.REPORTCOMPLETEDDATE) DAY_DIFF
    FROM (
        SELECT REPORTID
            , REPORTCOMPLETEDDATE
        FROM REPORTS
            WHERE REPORTTYPE = 'PaperReceived'
    ) RCVD
        JOIN (
        SELECT REPORTID
            , REPORTCOMPLETEDDATE
        FROM REPORTS
            WHERE REPORTTYPE = 'Form Completed'
    ) CMPLD
        ON RCVD.REPORTID = CMPLD.REPORTID
    

    【讨论】:

    • 有没有办法调整这一点,以获得严格的工作日而不是日历日?
    猜你喜欢
    • 1970-01-01
    • 2011-01-08
    • 2016-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-01
    相关资源
    最近更新 更多