Home Forums SQL Server 2008 SQL Server Newbies splitting up a start time and end time into different dates RE: splitting up a start time and end time into different dates

  • Sorry, here is the data.

    --===== If the test table already exists, drop it

    IF OBJECT_ID('TempDB..#mytable','U') IS NOT NULL

    DROP TABLE #mytable

    --------Create test table----------

    CREATE TABLE #mytable

    (

    DateStart DATETIME,

    DateEnd DATETIME

    )

    ---------Sample Data-------

    Insert into #mytable (DateStart,DateEnd)

    Select '2013-06-03 08:00:00.000', '2013-06-05 17:00:00.000' UNION ALL

    Select '2013-06-07 14:00:00.000', '2013-06-07 15:00:00.000' UNION ALL

    Select '2013-06-08 08:00:00.000', '2013-06-08 09:00:00.000' Union ALL

    Select '2013-06-27 08:00:00.000', '2013-06-28 17:00:00.000'

    --------What i Tried-----

    select * from #mytable

    select

    Convert(date,DateStart)as DateStart,

    SUM(case

    when Convert(time,DateEnd) < '12:00' then dateDiff(hh,Convert(time,DateStart), Convert(time,DateEnd))

    when Convert(time,DateStart) < '12:00' then dateDiff(hh,Convert(time,DateStart), Convert(time,'12:00'))

    else 0

    end) as AM,

    SUM(case

    when Convert(time,DateStart) > '12:00' then dateDiff(hh,Convert(time,DateStart), Convert(time,DateEnd))

    When Convert(time,DateEnd) > '12:00' then dateDiff(hh,Convert(time,'12:00'), Convert(time,DateEnd))

    else 0

    end) as PM

    from #myTable group by DateStart

    ---Problem: Does not take into accout mutiple days--