Advertisement
Guest User

Untitled

a guest
Apr 29th, 2017
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 1.39 KB | None | 0 0
  1. SET @date = NOW();
  2. -- SET @date = '2009-12-01'; -- Для тестов других годов и месяцев
  3.  
  4. SET @firstDayNumber = (SELECT WEEKDAY(DATE_FORMAT(@date,'%Y-%m-01')));
  5. SET @daysInMonth = (SELECT DAY(LAST_DAY(@date)));
  6. SET @dayNum = 0; SET @cellNum = 0;
  7.  
  8. SELECT Пн, Вт, Ср, Чт, Пт, Сб, Вск FROM (
  9.     SELECT
  10.     @cellNum := @cellNum + 1 c0,
  11.     IF (@dayNum >= @daysInMonth OR @cellNum <= @firstdayNumber, 0, @dayNum := @dayNum+1) 'Пн',
  12.     @cellNum := @cellNum + 1 c1,
  13.     IF (@dayNum >= @daysInMonth OR @cellNum <= @firstdayNumber, 0, @dayNum := @dayNum+1) 'Вт',
  14.     @cellNum := @cellNum + 1 c2,
  15.     IF (@dayNum >= @daysInMonth OR @cellNum <= @firstdayNumber, 0, @dayNum := @dayNum+1) 'Ср',
  16.     @cellNum := @cellNum + 1 c3,
  17.     IF (@dayNum >= @daysInMonth OR @cellNum <= @firstdayNumber, 0, @dayNum := @dayNum+1) 'Чт',
  18.     @cellNum := @cellNum + 1 c4,
  19.     IF (@dayNum >= @daysInMonth OR @cellNum <= @firstdayNumber, 0, @dayNum := @dayNum+1) 'Пт',
  20.     @cellNum := @cellNum + 1 c5,
  21.     IF (@dayNum >= @daysInMonth OR @cellNum <= @firstdayNumber, 0, @dayNum := @dayNum+1) 'Сб',
  22.     @cellNum := @cellNum + 1 c6,
  23.     IF (@dayNum >= @daysInMonth OR @cellNum <= @firstdayNumber, 0, @dayNum := @dayNum+1) 'Вск',
  24.     id FROM (
  25.         SELECT 1 id UNION
  26.         SELECT 2 UNION
  27.         SELECT 3 UNION
  28.         SELECT 4 UNION
  29.         SELECT 5 UNION
  30.         SELECT 6 UNION
  31.         SELECT 7
  32.         ) rows_
  33.     ) table_
  34. WHERE NOT (Пн = 0 AND Вск = 0)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement