Программирование >>  Преобразование значений null 

1 ... 86 87 88 [ 89 ] 90 91 92 ... 219


select hour(

current timestamp

minute(

current timestamp

min,

second(

current timestamp

sec,

day(

current timestamp

month(

current timestamp

mth,

year(

current timestamp

from t1

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 сохранит время.



1 ... 86 87 88 [ 89 ] 90 91 92 ... 219

© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика