Производственный календарь: 1 квартал 2018 года. Когда конец квартала


Производственный календарь на 2018 год

Производственный календарь на 2018 год
   Производственный календарь на 2018 год - данный календарь регламентируется соответствующими законодательными актами, определяющими окончательную продолжительность рабочего графика. По-прежнему актуальными являются положения  ст. 112 ТК, по которой нерабочими днями в Российской Федерации в 2018 году определены следующие:       1, 2, 3, 4, 5, 6, 8 января — Новогодние каникулы;     7 января — Рождество Христово;      23 февраля — День защитника Отечества;      8 марта — Международный женский день;      1 мая — Праздник Весны и Труда;      9 мая — День Победы;      12 июня — День России;      4 ноября — День народного единства.

  

   Перенос выходных дней в 2018 году осуществляется в соответствии с положениями, утвержденными Постановлением Правительства РФ "О переносе выходных дней в 2018 году" от 04 октября 2017г. № 1250, то есть:

6 января (Сб) на 9 марта (Пт)

7 января (Вс) на 2 мая (Ср)

28 апреля (Сб) на 30 апреля (Пн)

9 июня (Сб) на 11 июня (Пн)

29 декабря (Сб) на 31 декабря (Пн)

   В этом году в России уже прошел чемпионат мира по футболу и весьма неплохо все получилось =), ждем 23 Зимние Олимпийские игры и отправку на Марс пилотируемого космического корабля (приоритетность ожидаемого каждый определяем сами). Итак, производственный календарь:

   1 - рабочий день; 2 - предпраздничный день; 3 - выходной или праздничный день

Январь ФевральМарт
Понедельник18152229295121926265121926
Вторник
2
9162330306132027276132027
Среда310172431317142128287142128
Четверг41118251181522118152229
Пятница51219
26
2291623229162330
Суббота6132027331017243310172431
Воскресенье7142128 4411182544111825
Нормы времениЯнварьФевральМарт1 квартал 2018г.
Календарных дней31283190
Рабочих дней17192056
Выходных и праздничных дней1491134
При 40-часовой рабочей неделе136151159446
При 36-часовой рабочей неделе122,4135,8143401,2
При 24-часовой рабочей неделе81,690,295266,8
Апрель МайИюнь
Понедельник2629162330307142128284111825
Вторник
273101724118152229295121926
Среда284111825229162330306132027
Четверг2951219263310172431317142128
Пятница30613202744111825118152229
Суббота31714212855121926229162330
Воскресенье1815222966132027331017241
Нормы времениАпрельМайИюнь2 квартал 2018г.1 полугодие
Календарных дней30313091181
Рабочих дней21202061117
Выходных и праздничных дней911103064
При 40-часовой рабочей неделе167159159485931
При 36-часовой рабочей неделе150,2143143436,2837,4
При 24-часовой рабочей неделе99,89595289,8 556,6
Июль АвгустСентябрь
Понедельник2629162330306132027273101724
Вторник27310172431317142128284111825
Среда284111825118152229295121926
Четверг2951219262291623
30
306132027
Пятница3061320273310172431317142128
Суббота31714212844111825118152229
Воскресенье1815222955121926229162330
Нормы времениИюльАвгустСентябрь3 квартал 2018г.
Календарных дней31313092
Рабочих дней22232065
Выходных и праздничных дней981027
При 40-часовой рабочей неделе176184160520
При 36-часовой рабочей неделе158,4165,6144468
При 24-часовой рабочей неделе105,6110,496312
Октябрь НоябрьДекабрь
Понедельник1815222929512192626310172431
Вторник291623303061320272741118251
Среда3101724313171421282851219262
Четверг41118251181522292961320273
Пятница51219262291623303071421284
Суббота6132027331017241 181522295
Воскресенье7142128441118252291623306
Нормы времениОктябрьНоябрьДекабрь4 квартал 2018г.2 полугодие2018 год в целом
Календарных дней31303192184365
Рабочих дней23212165130247
Выходных и праздничных дней89102754118
При 40-часовой рабочей неделе18416816751910391970
При 36-часовой рабочей неделе165,6151,2150,24679351772,4
При 24-часовой рабочей неделе110,4100,899,8311 6231179,6

itsreda.ru

Получение дат начала и конца кварталов года

314

Глава 9. Работа с датами

 

end wk

from

(

select

dateadd(day, day(getdate())+1,getdate()) dy

from

t1

 

) x

union

all

select dateadd(d,1,dy), day(dateadd(d,1,dy)), mth, datepart(dw,dateadd(d,1,dy)),

case when datepart(dw,dateadd(d,1,dy)) = 1 then datepart(wk,dateadd(d,1,dy)) 1 else datepart(wk,dateadd(d,1,dy))

end from x

where datepart(m,dateadd(d,1,dy)) = mth

)

select max(case dw when 2 then dm end) as Mo, max(case dw when 3 then dm end) as Tu, max(case dw when 4 then dm end) as We, max(case dw when 5 then dm end) as Th, max(case dw when 6 then dm end) as Fr, max(case dw when 7 then dm end) as Sa, max(case dw when 1 then dm end) as Su

from x group by wk order by wk

MO TU WE TH FR SA SU

0102 03 04 05

06 07 08 09 10 11 12

13 14 15 16 17 18 19

20 21 22 23 24 25 26

27 28 29 30

Задача

Требуется возвратить даты начала и конца каждого из четырех квар! талов данного года.

Решение

В году четыре квартала, таким образом, требуется создать четыре строки. После создания необходимого количества строк возвращаем даты начала и окончания кварталов с помощью функций для работы с датами, предоставляемых СУБД. Цель – сформировать следующее результирующее множество (текущий год выбирается произвольно):

Получение дат начала и конца кварталов года

315

1 01 JAN 2005 31 MAR 2005 2 01 APR 2005 30 JUN 2005 3 01 JUL 2005 30 SEP 2005 4 01 OCT 2005 31 DEC 2005

DB2

Для формирования четырех строк используйте таблицу EMP и ранжи! рующую функцию ROW_NUMBER OVER. В качестве альтернативы строки можно создать с помощью оператора WITH (как во многих ре! цептах) или запроса к таблице, содержащей не менее четырех строк. В следующем решении используется функция ROW_NUMBER OVER:

1 select quarter(dy 1 day) QTR,

2 dy 3 month Q_start,

3dy 1 day Q_end

4from (

5 select (current_date

6(dayofyear(current_date) 1) day

7+ (rn*3) month) dy

8from (

9 select row_number()over() rn

10from emp

11fetch first 4 rows only

12) x

13) y

Oracle

С помощью функции ADD_MONTHS найдите начальную и конечную даты каждого квартала. Для представления квартала, которому соот! ветствуют та или иная начальная и конечная даты, используйте псев! достолбец ROWNUM (номер строки). В следующем решении для фор! мирования четырех строк используется таблица EMP:

1 select rownum qtr,

2 add_months(trunc(sysdate,'y'),(rownum 1)*3) q_start,

3 add_months(trunc(sysdate,'y'),rownum*3) 1 q_end

4from emp

5 where rownum <= 4

PostgreSQL

Используйте функцию GENERATE_SERIES для получения требуе! мых четырех кварталов. С помощью функции DATE_TRUNC от дат, возвращенных для каждого квартала, отсеките день, оставляя лишь год и месяц. Используя функцию TO_CHAR, установите соответствие между кварталом и начальной и конечной датами:

1 select to_char(dy,'Q') as QTR,

2date(

3

date_trunc('month',dy) (2*interval '1 month')

4) as Q_start,

316

Глава 9. Работа с датами

5dy as Q_end

6from (

7 select date(dy+((rn*3) * interval '1 month')) 1 as dy

8from (

9 select rn, date(date_trunc('year',current_date)) as dy

10from generate_series(1,4) gs(rn)

11) x

12) y

MySQL

Используйте таблицу T500, чтобы получить четрые строки (по одной для каждого квартала). Даты начала и конца каждого квартала вы! числяются с помощью функций DATE_ADD и ADDDATE. Используя функцию QUARTER, установите соответствие между кварталом и на! чальной и конечной датами:

1 select quarter(adddate(dy, 1)) QTR,

2 date_add(dy,interval 3 month) Q_start,

3adddate(dy, 1) Q_end

4from (

5

select

date_add(dy,interval (3*id) month) dy

6

from

(

7

select id,

8

 

adddate(current_date, dayofyear(current_date)+1) dy

9

from

t500

10where id <= 4

11) x

12) y

SQL Server

Четыре строки сформируйте с помощью рекурсивного оператора WITH. Посредством функции DATEADD найдите начальную и конечную да! ты. Используя функцию DATEPART, установите соответствие между кварталом и начальной и конечной датами:

1with x (dy,cnt)

2as (

3

select dateadd(d, (datepart(dy,getdate()) 1),getdate()),

4

1

5

from t1

6union all

7 select dateadd(m,3,dy), cnt+1

8from x

9 where cnt+1 <= 4

10)

11select datepart(q,dateadd(d, 1,dy)) QTR,

12dateadd(m, 3,dy) Q_start,

13dateadd(d, 1,dy) Q_end

14from x

15order by 1

Получение дат начала и конца кварталов года

317

Обсуждение

DB2

Первый шаг – получить четыре строки (со значениями от 1 до 4), по од! ной для каждого квартала года. Вложенный запрос Х с помощью ран! жирующей функции ROW_NUMBER OVER и оператора FETCH FIRST возвращает из таблицы EMP всего четыре строки. Результаты показа! ны ниже:

select

row_number()over() rn

from

emp

fetch

first 4 rows only

RN

1

2

3

4

Следующий шаг – найти первый день года и добавить к нему n меся! цев, гдеn – значение столбца RN, увеличенное в три раза (к первому дню года добавляется 3, 6, 9 и 12 месяцев). Результаты представлены ниже:

select

(current_date

 

(dayofyear(current_date) 1) day

 

+ (rn*3) month) dy

from

(

select

row_number()over() rn

from

emp

fetch

first 4 rows only

 

) x

DY

01 APR 2005

01 JUL 2005

01 OCT 2005

01 JAN 2005

На данный момент в столбце DY выведены даты, соответствующие сле! дующему дню после окончания каждого квартала. Следующий шаг – получить даты начала и конца каждого квартала. Чтобы получить да! ту окончания квартала, вычитаем один день из DY. Чтобы получить дату начала квартала, вычитаем три месяца из DY. Используем функ! цию QUARTER с параметром DY минус 1 (дата окончания каждого квартала), чтобы определить, какому кварталу соответствуют полу! ченные начальная и конечная даты.

318

Глава 9. Работа с датами

Oracle

Сочетание функций ROWNUM, TRUNC и ADD_MONTHS значительно упрощает решение. Чтобы найти дату начала каждого квартала, просто добавляем n месяцев к первому дню года, гдеn – это (ROWNUM – 1)×3 (что в результате дает 0, 3, 6, 9). Чтобы найти дату окончания каждого квартала, добавляемn месяцев к первому дню года, гдеn – это ROWNUM, умноженное на 3, и вычитаем один день. Отметим, что при работе с кварталами может быть полезным использование функций TO_CHAR и/или TRUNC с форматной маской ‘q’.

PostgreSQL

Первый шаг – с помощью функции DATE_TRUNC, исходя из текущей даты, получить первый день текущего года. Затем добавить n месяцев, гдеn – значение столбца RN (RN содержит значения, возвращенные функцией GENERATE_SERIES), умноженное на три, и вычесть один день. Результаты показаны ниже:

select

date(dy+((rn*3) * interval '1 month')) 1 as dy

from

(

select

rn, date(date_trunc('year',current_date)) as dy

from

generate_series(1,4) gs(rn)

 

) x

DY

31 MAR 2005

30 JUN 2005

30 SEP 2005

31 DEC 2005

Теперь после получения конечных дат всех кварталов остается послед! ний шаг – найти начальные даты. Для этого из каждого значения DY вычитаем два месяца и с помощью функции DATE_TRUNC переходим

кпервому дню полученного месяца. Применяя функцию TO_CHAR

кконечной дате каждого квартала (DY), определяем, какому кварталу соответствуют начальная и конечная даты.

MySQL

Первый шаг – найти первый день года, используя функции ADDDATE и DAYOFYEAR. Затем с помощью функции DATE_ADD добавить n ме! сяцев к первому дню года, гдеn – значение T500.ID, умноженное на три. Результаты представлены ниже:

select date_add(dy,interval (3*id) month) dy from (

select id, adddate(current_date, dayofyear(current_date)+1) dy

from t500 where id <= 4

Получение дат начала и конца кварталов года

319

) x

DY

01 APR 2005

01 JUL 2005

01 OCT 2005

01 JAN 2005

На данный момент возвращены даты, соответствующие следующему дню после окончания каждого квартала. Чтобы найти последний день каждого квартала, просто вычтем по одному дню из всех значений DY. Следующий шаг – найти даты начала кварталов, для этого вычитаем по три месяца из каждого значения DY. Применяем функцию QUAR! TER к конечной дате каждого квартала, чтобы определить, какому кварталу соответствуют начальная и конечная даты.

SQL Server

Первый шаг – найти первый день года. Затем, используя функцию DATEADD, рекурсивно добавить по n месяцев, гдеn – номер текущей итерации, умноженный на три (всего выполняется четыре итерации, следовательно, добавляется 3 * 1 месяцев, 3 * 2 месяцев и т. д.). Ре! зультаты показаны ниже:

with x

(dy,cnt)

as (

 

select

dateadd(d, (datepart(dy,getdate()) 1),getdate()),

 

1

from

t1

union

all

select

dateadd(m,3,dy), cnt+1

from

x

where

cnt+1 <= 4

)

 

select

dy

from

x

DY

01 APR 2005

01 JUL 2005

01 OCT 2005

01 JAN 2005

Значения DY соответствуют следующим дням после окончания каж! дого квартала. Чтобы получить даты окончания кварталов, просто вы! читаем один день из значений DY, используя функцию DATEADD. Чтобы найти дату начала каждого квартала, с помощью функции DATEADD вычитаем три месяца из каждого значения DY. Применяя функцию DATEPART к конечным датам кварталов, определяем, к ка! ким кварталам относятся полученные начальные и конечные даты.

320

Глава 9. Работа с датами

Определение дат начала и окончания заданного квартала

Задача

Год и квартал заданы в формате YYYYQ (четыре разряда – год, один разряд – квартал), требуется получить даты начала и окончания квар! тала.

Решение

Ключ к решению – применить к значению YYYYQ функцию вычисле! ния остатка от деления. (Поскольку год представлен четырьмя разря! дами, вместо нахождения остатка от деления можно просто извлечь последний разряд как подстроку.) Получив номер квартала, просто умножаем это значение на 3, чтобы найти месяц окончания квартала. В представленных решениях вложенный запрос Х возвращает все че! тыре сочетания года и кварталов. Результирующее множество вло! женного запроса Х следующее:

select 20051 as yrq from t1 union all select 20052 as yrq from t1 union all select 20053 as yrq from t1 union all select 20054 as yrq from t1

YRQ

20051

20052

20053

20054

DB2

Используйте функцию SUBSTR, чтобы возвратить год из вложенного запроса Х. С помощью функции MOD определите искомый квартал:1

1 select (q_end 2 month) q_start,

2(q_end+1 month) 1 day q_end

3from (

4 select date(substr(cast(yrq as char(4)),1,4) ||' '||

5rtrim(cast(mod(yrq,10)*3 as char(2))) ||' 1') q_end

6from (

7

select

20051

yrq

from

t1

union

all

8

select

20052

yrq

from

t1

union

all

9select 20053 yrq from t1 union all

1 В решениях для этой СУБД и всех следующих можно получить год, разде! лив значение YYYYQ на 10; этот вариант ближе к способу получения квар! тала путем вычисления остатка от деления, чем использование функции SUBSTR. –Примеч. науч. ред.

Определение дат начала и окончания заданного квартала

321

10select 20054 yrq from t1

11) x

12) y

Oracle

Используйте функцию SUBSTR, чтобы возвратить год из вложенного запроса Х. С помощью функции MOD определите искомый квартал:

1 select add_months(q_end, 2) q_start,

2last_day(q_end) q_end

3from (

4 select to_date(substr(yrq,1,4)||mod(yrq,10)*3,'yyyymm') q_end

5from (

6

select 20051

yrq from dual union all

7

select 20052

yrq from dual union all

8

select

20053

yrq

from dual union all

9

select

20054

yrq

from dual

10) x

11) y

PostgreSQL

Используйте функцию SUBSTR, чтобы возвратить год из вложенного запроса Х. С помощью функции MOD определите искомый квартал:

1 select date(q_end (2*interval '1 month')) as q_start,

2date(q_end+interval '1 month' interval '1 day') as q_end

3from (

4 select to_date(substr(yrq,1,4)||mod(yrq,10)*3,'yyyymm') as q_end

5from (

6 select 20051 as yrq from t1 union all

7 select 20052 as yrq from t1 union all

8 select 20053 as yrq from t1 union all

9 select 20054 as yrq from t1

10) x

11) y

MySQL

Используйте функцию SUBSTR, чтобы возвратить год из вложенного запроса Х. С помощью функции MOD определите искомый квартал:

1 select date_add(

2adddate(q_end, day(q_end)+1),

3

interval 2 month) q_start,

4q_end

5from (

6 select last_day(

7str_to_date(

8concat(

9substr(yrq,1,4),mod(yrq,10)*3),'%Y%m')) q_end

10from (

11select 20051 as yrq from t1 union all

322

Глава 9. Работа с датами

12select 20052 as yrq from t1 union all

13select 20053 as yrq from t1 union all

14select 20054 as yrq from t1

15) x

16) y

SQL Server

Используйте функцию SUBSTRING, чтобы возвратить год из вложен! ного запроса Х. С помощью функции вычисления остатка от деления

(%) определите искомый квартал:

1 select dateadd(m, 2,q_end) q_start,

2dateadd(d, 1,dateadd(m,1,q_end)) q_end

3from (

4 select cast(substring(cast(yrq as varchar),1,4)+' '+

5cast(yrq%10*3 as varchar)+' 1' as datetime) q_end

6from (

7

select 20051

yrq from t1

union all

8

select

20052

yrq

from

t1

union all

9

select

20053

yrq

from

t1

union all

10select 20054 yrq from t1

11) x

12) y

Обсуждение

DB2

Первый шаг – найти год и квартал, с которыми будем работать. Извле! каем подстроку года из вложенного запроса X (X.YRQ), используя функцию SUBSTR. Чтобы получить квартал, находим остаток от деле! ния YRQ на 10. Вычислив номер квартала, умножаем его на 3 и полу! чаем последний месяц квартала. Результаты представлены ниже:

select

substr(cast(yrq as char(4)),1,4) yr,

 

mod(yrq,10)*3 mth

 

from

(

 

 

select

20051

yrq from t1 union all

select

20052

yrq from t1

union all

select

20053

yrq from t1

union all

select

20054

yrq from t1

 

 

) x

 

 

YR MTH

2005 3

2005 6

2005 9

2005 12

На данный момент мы имеем год и последний месяц каждого кварта! ла. Используя эти значения, получим необходимые даты, в частности,

Определение дат начала и окончания заданного квартала

323

первый день последнего месяца каждого квартала. С помощью опера! тора конкатенации «||» объединим год и месяц и затем с помощью функции DATE преобразуем полученное значение в дату:

select

date(substr(cast(yrq as

char(4)),1,4) ||' '||

 

rtrim(cast(mod(yrq,10)*3 as char(2))) ||' 1') q_end

from

(

 

 

 

select

20051

yrq from t1

union all

select

20052

yrq from t1

union all

select

20053

yrq from t1

union all

select

20054

yrq from t1

 

 

 

) x

 

 

 

Q_END

01 MAR 2005

01 JUN 2005

01 SEP 2005

01 DEC 2005

Значения столбца Q_END – первый день последнего месяца каждого квартала. Чтобы получить последний день месяца, добавим один ме! сяц к значению Q_END и вычтем один день. Чтобы найти дату начала каждого квартала, вычтем из Q_END два месяца.

Oracle

Первый шаг – найти год и квартал, с которыми будем работать. Извле! каем подстроку года из вложенного запроса X (X.YRQ), используя функцию SUBSTR. Чтобы получить квартал, находим остаток от деле! ния YRQ на 10. Вычислив номер квартала, умножаем его на 3 и полу! чаем последний месяц квартала. Результаты представлены ниже:

select

substr(yrq,1,4) yr, mod(yrq,10)*3 mth

from

(

 

select

20051

yrq from dual union all

select

20052

yrq from dual union all

select

20053

yrq from dual union all

select

20054

yrq from dual

 

) x

 

YR MTH

2005 3

2005 6

2005 9

2005 12

На данный момент мы имеем год и последний месяц каждого кварта! ла. Используя эти значения, получим необходимые даты, в частности, первый день последнего месяца каждого квартала. С помощью опера! тора конкатенации «||» объединим год и месяц и затем с помощью функции TO_DATE преобразуем полученное значение в дату:

324

 

Глава 9. Работа с датами

select

to_date(substr(yrq,1,4)||mod(yrq,10)*3,'yyyymm') q_end

from

(

 

select

20051

yrq from dual union all

select

20052

yrq from dual union all

select

20053

yrq from dual union all

select

20054

yrq from dual

 

) x

 

Q_END

01 MAR 2005

01 JUN 2005

01 SEP 2005

01 DEC 2005

Значения столбца Q_END – первый день последнего месяца каждого квартала. Чтобы получить последний день месяца, применим к значе! ниям Q_END функцию LAST_DAY. Чтобы найти дату начала каждого квартала, вычтем из Q_END два месяца, используя функцию ADD_ MONTHS.

PostgreSQL

Первый шаг – найти год и квартал, с которыми будем работать. Извле! каем подстроку года из вложенного запроса X (X.YRQ), используя функцию SUBSTR. Чтобы получить квартал, находим остаток от деле! ния YRQ на 10. Вычислив номер квартала, умножаем его на 3 и полу! чаем последний месяц квартала. Результаты представлены ниже:

select

substr(yrq,1,4) yr, mod(yrq,10)*3 mth

from

(

 

select

20051

yrq from dual union all

select

20052

yrq from dual union all

select

20053

yrq from dual union all

select

20054

yrq from dual

 

) x

 

YR MTH

2005 3

2005 6

2005 9

2005 12

На данный момент мы имеем год и последний месяц каждого кварта! ла. Используя эти значения, получим необходимые даты, в частности, первый день последнего месяца каждого квартала. С помощью опера! тора конкатенации «||» объединим год и месяц и затем с помощью функции TO_DATE преобразуем полученное значение в дату:

select to_date(substr(yrq,1,4)||mod(yrq,10)*3,'yyyymm') q_end from (

select 20051 yrq from dual union all

Определение дат начала и окончания заданного квартала

325

select 20052 yrq from dual union all select 20053 yrq from dual union all select 20054 yrq from dual

) x

Q_END

01 MAR 2005

01 JUN 2005

01 SEP 2005

01 DEC 2005

Значения столбца Q_END – первый день последнего месяца каждого квартала. Чтобы получить последний день месяца, добавим к значени! ям Q_END один месяц и вычтем один день. Чтобы найти дату начала каждого квартала, вычтем два месяца из Q_END. Представим конеч! ные результаты как даты.

MySQL

Первый шаг – найти год и квартал, с которыми будем работать. Извле! каем подстроку года из вложенного запроса X (X.YRQ), используя функцию SUBSTR. Чтобы получить квартал, находим остаток от деле! ния YRQ на 10. Вычислив номер квартала, умножаем его на 3 и полу! чаем последний месяц квартала. Результаты представлены ниже:

select

substr(yrq,1,4) yr, mod(yrq,10)*3 mth

from

(

 

select

20051

yrq from dual union all

select

20052

yrq from dual union all

select

20053

yrq from dual union all

select

20054

yrq from dual

 

) x

 

YR MTH

2005 3

2005 6

2005 9

2005 12

На данный момент мы имеем год и последний месяц каждого кварта! ла. Используя эти значения, получим необходимые даты, в частности, последний день каждого квартала. С помощью функции CONCAT объ! единим год и месяц и затем с помощью функции STR_TO_DATE пре! образуем полученное значение в дату. Последний день каждого квар! тала найдем, применяя функцию LAST_DAY:

select last_day( str_to_date( concat(

substr(yrq,1,4),mod(yrq,10)*3),'%Y%m')) q_end

from (

326

Глава 9. Работа с датами

select 20051 as yrq from t1 union all select 20052 as yrq from t1 union all select 20053 as yrq from t1 union all select 20054 as yrq from t1

) x

Q_END

31 MAR 2005

30 JUN 2005

30 SEP 2005

31 DEC 2005

Поскольку мы уже получили даты окончания кварталов, осталось только найти даты их начала. Используем функцию DAY, чтобы полу! чить день месяца, на который выпадает окончание каждого из кварта! лов, и с помощью функции ADDDATE вычтем полученное значение из Q_END, чтобы получить последний день предыдущего месяца. Доба! вим один день и найдем первый день последнего месяца каждого квар! тала. Последний шаг – посредством функции DATE_ADD вычитаем два месяца из первого дня последнего месяца каждого квартала и по! лучаем дату начала каждого квартала.

SQL Server

Первый шаг – найти год и квартал, с которыми будем работать. Ис! пользуя функцию SUBSTR, извлекаем подстроку года из вложенного запроса X (X.YRQ). Чтобы получить квартал, находим остаток от деле! ния YRQ на 10. Вычислив номер квартала, умножаем его на 3 и полу! чаем последний месяц квартала. Результаты представлены ниже:

select

substring(yrq,1,4) yr, yrq%10*3 mth

from

(

 

select

20051

yrq from dual union all

select

20052

yrq from dual union all

select

20053

yrq from dual union all

select

20054

yrq from dual

 

) x

 

YR MTH

2005 3

2005 6

2005 9

2005 12

На данный момент мы имеем год и последний месяц каждого кварта! ла. Используя эти значения, получим необходимые даты, в частности, первый день последнего месяца каждого квартала. С помощью опера! тора конкатенации «+» объединим год и месяц и затем с помощью функции CAST представим полученное значение как дату:

studfiles.net

Предложения со словосочетанием КОНЕЦ КВАРТАЛА

В-третьих, мы указали, что всё происходит в реальном времени, то есть целевая система не подводит итоги в конце квартала, чем мог бы заниматься рядовой специалист, а принимает и воплощает решения непосредственно в процессе потребления ресурсов. Пройдя до конца квартала, я повернула налево и зашагала по чистенькой широкой улице. За всю свою карьеру — как в DecisionTech, так и до этого — он ни разу не пришёл к концу квартала с плохими результатами. Двор, переходивший в квартал, был огромным, и к нам в разные годы присоединялись мальчишки и девчонки, жившие в разных концах квартала и за его пределами. А мне, бухгалтеру-экономисту, и так по горло хватало каждодневной рутины, да ещё — конец квартала.

Привет! Меня зовут Лампобот, я компьютерная программа, которая помогает делать Карту слов. Я отлично умею считать, но пока плохо понимаю, как устроен ваш мир. Помоги мне разобраться!

Спасибо! Я стал чуточку лучше понимать мир эмоций.

Я уже понял, что дружеские слова — это нечто положительное. Помоги мне понять, что позволяет оценить дружеские слова как положительное — эмоции (чувства, переживания) или практичность (выгода, полезность, правильность)?

Больше эмоции,чем практичность

Скорее практичность,чем эмоции

Абсолютнаяпрактичность

Это изначальнонейтральное

— Спрячьтесь в восточном конце квартала... — бабушка внезапно осеклась, не сводя взгляда с одного из окон. Три тёмные фигуры стояли в конце квартала и в упор смотрели на них. Несколько соседей, женщина с другого конца квартала, ещё какие-то люди, которых он не знает, кучками стоят на тротуаре и на проезжей части, пустые баки у ног. В конце квартала сидела большая чёрная собака. Несколько человек рванулись к двери, а остальные разбежались в разные концы квартала. Надеюсь, что в конце квартала ваши усилия скажутся на росте продаж. Обещанное зелье было вручено уже в сумерках, после заката, в одной из неприметных подворотен в конце квартала. Вскоре я оказался спрятан среди печных труб и воздуховодов многоквартирного жилого дома в конце квартала. Через минуту она уже стояла в конце квартала многоквартирных домов. До конца квартала две недели, а у вас до плана не достаёт, — тычет пальцем по кнопкам калькулятора, — восемьдесят процентов! В конце квартала дома стали понижаться, образуя своего рода гигантскую лестницу, некоторые пролёты которой были превращены в террасы и огорожены перилами. Когда та появилась, в конце квартала подруги поспешили ей навстречу, но подойдя ближе увидели и поняли, что ошиблись — не она. Постепенно пространство звало меня всё дальше и дальше, я стала доходить до конца квартала и в одну и в другую сторону, потом даже поворачивать за угол. Правда, конец квартала не давал мне возможности как следует подготовиться, но я уже увлёкся и не мог остановиться. Не теряя больше времени ни минуты, я вылез в окно и спустился по водосточной трубе на улицу и тут-же в конце квартала завыла полицейская сирена. Так их, с одной стороны, всегда хоть отбавляй, а с другой... Да что он, очередного отчёта, что ли, не составит к концу квартала? Прищурившись, она подошла почти к самому краю балкона и уставилась на далёкие огни площади в конце квартала. Поэтому перед концом квартала у нас появлялись гонцы с мест и норовили водить нас по ресторанам. Как так можно?! Что за безответственность?! И это в конце квартала! В другом конце квартала мужчина запихивал в ботинки старую газету. Чего доброго, в конце квартала сможет нашить себе уголок на рукав. В этот самый момент с дальнего конца квартала, настёгивая лошадей короткими тугими плётками, в их сторону понеслась тройка всадников. На работе, как всегда в конце квартала, была запарка. Пролетев до конца квартала, вампирша повернула назад. Прогнозировался убыток в размере 50 центов на акцию к концу квартала, который оканчивался завтра. Я дошёл до конца квартала и на минуту остановился, впитывая холодный воздух. Дело было в конце квартала, в момент так называемой штурмовщины, когда план выполнялся любой ценой. Это произошло в конце квартала. Взгляд мой упал на вывеску магазина в конце квартала. Это же был конец квартала, понимаешь... а у меня не хватало двадцать тысяч к плану, понимаешь... чтоб закрыть квартал. Он теперь на другом конце квартала, и уж, разумеется, его не видать вам, как своих ушей. Правда, сейчас конец квартала, в следующем квартале, может быть, сумеем выйти из положения. По крышам сараев можно было почти до конца квартала промчаться — через семь дворов. И вот тогда-то увидел в конце квартала знакомые косы. Так, успокаивая себя, я дошёл до конца квартала, где в окружении высоких деревьев стоял пятиэтажный дом. В конце квартала, куда теперь направлялись драгуны, стояло облако пыли — там совсем недавно рухнул крайний дом. Они вышли из дома и направились к концу квартала, где должен был быть продовольственный магазин. В конце квартала виднелись пустые ячейки для велосипедов. Ещё одно скопление транспортных средств она увидела лишь в конце квартала. Я тебе верну в конце квартала. Точнее, до конца квартала. Когда его спрашивают, почему он не ищет свои ключи в конце квартала, он отвечает: «Потому что здесь светлее». Вон там, в конце квартала, наш сосед, с которым я никогда не встречалась и не встречусь, открывает входную дверь и выходит в ночь. И тут же вижу, как из-за угла в конце квартала выруливает зеленорубашечник. Я его знал совсем недолго — несколько раз пересекались в головном офисе, когда приходилось сдавать документацию и отчётность в конце квартала.

Оставить комментарий

Текст комментария:

Дополнительно:

kartaslov.ru