Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SQL Server Проследяване на планирани смени, когато денят варира

Следното показва таблица на смените. Не е съвсем ясно какво искате да направите, но трябва да можете да проектирате обратно, определяйки изместването от дата/час на събитие, като използвате някои от изчисленията, показани тук.

РЕДАКТИРАНЕ :Коригиран регистр за обработка на шаблон 2/2/3/2.

<предварителен код>; с образци като ( -- Започнете в началото на 2013 г. изберете Cast( '01-01-2013 00:00' като DateTime ) като примерен съюз всички -- Добавете часове до желаната крайна дата. изберете DateAdd( час, 1 , Sample ) от Samples where Sample <='2013-01-30' ), ExtendedSamples as ( -- Изчислете броя на дните от началото на първата смяна на 1/1/2013. изберете Sample, DateDiff( час, ' 01-01-2013 07:00', проба ) / 24 като дни от извадки), смени като ( -- Изчислете смените за всеки ден. изберете *, случай, когато ( дни + 1 ) % 9 в ( 0, 1, 4, 5 ) след това 'C/D' иначе 'A/B' край като Shifts от ExtendedSamples ) изберете *, случай, когато DatePart( час, Sample ) между 7 и 18 тогава Substring( Shifts, 1, 1 ) else Substring( Shifts , 3, 1) завършват като Shift от опцията Shifts ( maxrecursion 0 )

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Обобщавайте по седмици, дори и за празни редове

  2. Търсене и замяна на цялата стойност на колона SQL Server

  3. преобразуването на тип данни varchar в тип данни за дата и час води до стойност извън диапазона

  4. Кой е най-добрият подход за автоматично увеличаване

  5. какъв е правилният ред за инсталиране на Visual Studio 2012 и SQL Server Management Studio 2012 на win7?