|
Программирование >> Преобразование значений null
10 select 20054 yrq from t1 11 ) x 12 ) y Oracle Используйте функцию SUBSTR, чтобы возвратить год из вложенного запроса Х. С помощью функции MOD определите искомый квартал: last day(q end) q end
) x ) y PostgreSQL Используйте функцию SUBSTR, чтобы возвратить год из вложенного запроса Х. С помощью функции MOD определите искомый квартал:
Используйте функцию SUBSTR, чтобы возвратить год из вложенного запроса Х. С помощью функции MOD определите искомый квартал: 1 select date add( 2 adddate(q end,-day(q end)+1), 3 interval -2 month) q start, 4 q end 5 from ( b select last day( 7 str to date( 8 concat( 9 substr(yrq,1,4),mod(yrq,10)*3),%Y%m)) q end 10 from ( 11 select 20051 as yrq from t1 union all 12 select 20052 as yrq from t1 union all 13 select 20053 as yrq from t1 union all 14 select 20054 as yrq from t1 15 ) x 16 ) y SQL Server Используйте функцию SUBSTRING, чтобы возвратить год из вложенного запроса Х. С помощью функции вычисления остатка от деления (%) определите искомый квартал: 1 select dateadd(m,-2,q end) q start,
Обсуждение DB2 Первый шаг - найти год и квартал, с которыми будем работать. Извлекаем подстроку года из вложенного запроса X (X.YRQ), используя функцию SUBSTR. Чтобы получить квартал, находим остаток от деления YRQ на 10. Вычислив номер квартала, умножаем его на 3 и получаем последний месяц квартала. Результаты представлены ниже: select substr(cast(yrq as char(4)),1,4) yr, mod(yrq,10)*3 mth
На данный момент мы имеем год и последний месяц каждого квартала. Используя эти значения, получим необходимые даты, в частности, первый день последнего месяца каждого квартала. С помощью оператора конкатенации объединим год и месяц и затем с помощью функции DATE преобразуем полученное значение в дату: select date(substr(cast(yrq as char(4)),1,4) - rtrim(cast(mod(yrq,10)*3 as char(2))) 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 b 2005 9 2005 12 На данный момент мы имеем год и последний месяц каждого квартала. Используя эти значения, получим необходимые даты, в частности, первый день последнего месяца каждого квартала. С помощью оператора конкатенации объединим год и месяц и затем с помощью функции TO DATE преобразуем полученное значение в дату:
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |