|
Программирование >> Преобразование значений null
Oracle С помощью функции TRUNC найдите начало текущего года и, используя функцию ADD MONTHS, определите начало следующего года: 1 select add months(trunc(sysdate,y),12) - trunc(sysdate,y) 2 from dual PostgreSQL С помощью функции DATE TRUNC найдите начало текущего года. Затем, используя арифметику интервалов, найдите начало следующего года: 1 select cast((curr year + interval 1 year) as date) - curr year 2 from ( 3 select cast(date trunc(year,current date) as date) as curr year 4 from t1 5 ) x MySQL Используйте ADDDATE, чтобы найти начало текущего года. С помощью функции DATEDIFF и арифметики интервалов определите количество дней в году: 1 select datediff((curr year + interval 1 year),curr year) 2 from ( 3 select adddate(current date,-dayofyear(current date)+1) curr year 4 from t1 5 ) x SQL Server С помощью функции DATEADD найдите первый день текущего года. Чтобы возвратить число дней в текущем году, используйте DATEDIFF: 1 select datediff(d,curr year,dateadd(yy,1,curr year)) 2 from ( 3 select dateadd(d,-datepart(dy,getdate())+1,getdate()) curr year 4 from t1 5 ) x Обсуждение Первый шаг - найти первый день текущего года. Для определения количества прошедших дней текущего года используется функция DAY-OFYEAR (день года). Вычитая это значение из текущей даты, получаем последний день прошлого года и затем добавляем 1: select (current date - dayofyear(current date) day + 1 day) curr year from t1 CURR YEAR 01-JAN-2005 Теперь, имея первый день текущего года, просто прибавляем к нему один год, тем самым получаем первый день следующего года. Затем вычитаем начало текущего года из начала следующего года. Oracle Первый шаг - найти первый день текущего года, что можно без труда сделать, вызвав встроенную функцию TRUNC и передав в качестве второго аргумента Y (таким образом получая, исходя из текущей даты, первый день текущего года): select select trunc(sysdate,y) curr year from dual CURR YEAR 01-JAN-2005 Затем добавляем один год, чтобы получить первый день следующего года. Наконец, находим разность между двумя датами и определяем количество дней в текущем году. PostgreSQL Начинаем с получения первого дня текущего года. Для этого вызываем функцию DATE TRUNC следующим образом: select cast(date trunc(year,current date) as date) as curr year from t1 CURR YEAR 01-JAN-2005 Теперь можно без труда добавить год, чтобы получить первый день следующего года, и тогда останется только вычесть одну дату из другой. Вычитать следует более раннюю дату из более поздней. В результате будет получено количество дней в текущем году. MySQL Первый шаг - найти первый день текущего года. С помощью функции DAYOFYEAR находим количество прошедших дней текущего года. Вычитаем это значение из текущей даты и добавляем 1: select adddate(current date,-dayofyear(current date)+1) curr year from t1 CURR YEAR 01-JAN-2005 Получив первый день текущего года, добавляем к нему один год, в результате чего получаем первый день следующего года. Затем вычитаем начало текущего года из начала следующего года. В итоге находим число дней в текущем году. SQL Server Первый шаг - найти первый день текущего года. Вычитаем из текущей даты количество прошедших дней года и добавляем 1, используя функции DATEADD и DATEPART: select dateadd(d,-datepart(dy,getdate())+1,getdate()) curr year from t1 CURR YEAR 01-JAN-2005 Получив первый день текущего года, добавляем к нему один год, в результате чего получаем первый день следующего года. Затем вычитаем начало текущего года из начала следующего. В итоге находим количество дней в текущем году. Извлечение единиц времени из даты Задача Требуется разложить текущую дату на шесть частей: день, месяц, год, секунды, минуты и часы. Результаты должны быть возвращены в численном виде. Решение В данном рецепте текущая дата выбрана для иллюстрации, он свободно может использоваться с другими датами. В главе 1 говорилось о важности изучения и использования преимуществ встроенных функций, предоставляемых СУБД. Это особенно актуально, когда дело касается дат. Существует множество других способов извлечения единиц времени из даты, кроме представленных в данном рецепте. Очень полезно поэкспериментировать с разными техниками и функциями. DB2 реализует ряд встроенных функций, которые упрощают задачу по извлечению частей даты. Имена функций HOUR (час), MINUTE (минута), SECOND (секунда), DAY, MONTH и YEAR соответствуют возвращаемым ими единицам измерения времени. Если требуется получить день, используется функция DAY, час - функция HOUR и т. д. Например:
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |