sql >> Databáze >  >> RDS >> Sqlserver

SQL Server Tracking Scheduled Shifts, když se den mění

Následuje tabulka směn. Není přesně jasné, co chcete udělat, ale měli byste být schopni zpětně analyzovat určení posunu od data/času události pomocí některých zde uvedených výpočtů.

UPRAVIT :Opravený case pro zpracování vzoru 2/2/3/2.

; with Samples as (
  -- Start at the beginning of 2013.
  select Cast( '01-01-2013 00:00' as DateTime ) as Sample
  union all
  -- Add hours up to the desired end date.
  select DateAdd( hour, 1, Sample )
    from Samples
    where Sample <= '2013-01-30'
  ),
  ExtendedSamples as (
  -- Calculate the number of days since the beginning of the first shift on 1/1/2013.
  select Sample, DateDiff( hour, '01-01-2013 07:00', Sample ) / 24 as Days
    from Samples ),
  Shifts as (
  -- Calculate the shifts for each day.
  select *,
    case when ( Days + 1 ) % 9 in ( 0, 1, 4, 5 ) then 'C/D' else 'A/B' end as Shifts
    from ExtendedSamples )
  select *,
    case when DatePart( hour, Sample ) between 7 and 18 then Substring( Shifts, 1, 1 ) else Substring( Shifts, 3, 1 ) end as Shift
    from Shifts
    option ( maxrecursion 0 )


  1. Jak změnit výchozí hodnotu sloupce pomocí procedury

  2. Jaká je maximální velikost dávky JDBC?

  3. Odeslání libovolného počtu záznamů z formuláře HTML

  4. Vzdálený přístup MySql odepřen uživateli s kódem C#, ale lze se připojit pomocí DbVisualizer