|
Программирование >> Преобразование значений null
HR MIN SEC DY MTH YR 20 28 36 15 6 2005 Oracle Для выбора определенных частей даты, соответствующих тем или иным единицам времени, используйте функции TO CHAR и TO NUMBER: 1 select to number(to char(sysdate,hh24)) hour, 2 to number(to char(sysdate,mi)) min, 3 to number(to char(sysdate,ss)) sec, 4 to number(to char(sysdate,dd)) day, 5 to number(to char(sysdate,mm)) mth, 6 to number(to char(sysdate,yyyy)) year 7 from dual HOUR MIN SEC DAY MTH YEAR 20 28 36 15 6 2005 PostgreSQL Для выбора определенных частей даты, соответствующих тем или иным единицам времени, используйте функции TO CHAR и TO NUMBER: 1 select to number(to char(current timestamp,hh24),99) as hr, 2 to number(to char(current timestamp,mi),99) as min, 3 to number(to char(current timestamp,ss),99) as sec, 4 to number(to char(current timestamp,dd),99) as day, 5 to number(to char(current timestamp,mm),99) as mth, 6 to number(to char(current timestamp,yyyy),9999) as yr 7 from t1 HR MIN SEC DAY MTH YR 20 28 36 15 6 2005 MySQL Для выбора определенных частей даты, соответствующих тем или иным единицам времени, используйте функцию DATE FORMAT: 1 select date format(current timestamp,%k) hr, 2 date format(current timestamp,%i) min, 3 date format(current timestamp,%s) sec, 4 date format(current timestamp,%d) dy, 5 date format(current timestamp,%m) mon, 6 date format(current timestamp,%Y) yr 7 from t1 HR MIN SEC DY MTH YR 20 28 36 15 6 2005 SQL Server Для выбора определенных частей даты, соответствующих тем или иным единицам времени, используйте функцию DATEPART (часть даты): 1 select datepart( hour, getdate()) hr, 2 datepart( minute,getdate()) min, 3 datepart( second,getdate()) sec, 4 datepart( day, getdate()) dy, 5 datepart( month, getdate()) mon, 6 datepart( year, getdate()) yr 7 from t1 HR MIN SEC DY MTH YR 20 28 36 15 6 2005 Обсуждение В этих решениях нет ничего необычного, просто используем то, за что уже заплачено. Потрудитесь изучить функции для работы с датами, которые имеете в своем распоряжении. В решениях этого рецепта мы лишь поверхностно затронули представленные функции. Каждая из них может принимать намного больше аргументов и возвращать больше информации, чем показано здесь. Определение первого и последнего дней месяца Задача Требуется получить первый и последний дни текущего месяца. Решение Представленные здесь решения обеспечивают поиск первого и последнего дней текущего месяца. Текущий месяц выбран произвольно. С небольшими корректировками эти решения можно применять к разным месяцам. С помощью функции DAY возвращаем количество прошедших в текущем месяце дней на основании представленной текущей даты. Вычитаем это значение из текущей даты и добавляем 1, чтобы получить PostgreSQL С помощью функции DATE TRUNC получаем из текущей даты первый день месяца. Имея первый день месяца, добавляем к нему один месяц и вычитаем один день, чтобы найти последний день текущего месяца: 1 select firstday, 2 cast(firstday + interval 1 month 3 - interval 1 day as date) as lastday 4 from ( 5 select cast(date trunc(month,current date) as date) as firstday 6 from t1 7 ) x MySQL С помощью функций DATE ADD и DAY возвращаем количество прошедших в текущем месяце дней согласно представленной текущей дате. Затем вычитаем это значение из текущей даты и добавляем 1, чтобы найти первый день месяца. Последний день месяца получаем, используя функцию LAST DAY: 1 select date add(current date, 2 interval -day(current date)+1 day) firstday, 3 last day(current date) lastday 4 from t1 SQL Server С помощью функций DATEADD и DAY возвращаем количество прошедших в текущем месяце дней согласно представленной текущей дате. Затем вычитаем это значение из текущей даты и добавляем 1, что- первый день месяца. Чтобы определить последний день месяца, добавляем один месяц к текущей дате и вычитаем значение, возвращенное функцией DAY для текущей даты: 1 select (current date - day(current date) day +1 day) firstday, 2 (current date +1 month -day(current date) day) lastday 3 from t1 Oracle Первый день месяца находим с помощью функции TRUNC, последний день - с помощью функции LAST DAY: 1 select trunc(sysdate,mm) firstday, 2 last day(sysdate) lastday 3 from dual Описанное здесь применение TRUNC приведет к потере всех компонентов времени даты, тогда как LAST DAY сохранит время.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |