Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Ниже приведена версия данного примера для PostgreSQL, в которой используется<br />
похожая функция DATE_PART ():<br />
ВВОД<br />
SELECT order_num<br />
FROM Orders<br />
WHERE DATE_PART('year', order_date) = 2004;<br />
В MySQL, помимо DATEPART (), есть множество других функций,<br />
предназначенных для манипулирования значениями дат. Пользователи MySQL могут<br />
использовать функцию YEAR () для выборки из даты значения года:<br />
ВВОД<br />
SELECT order_num<br />
FROM Orders<br />
WHERE YEAR(order_date) = 2004;<br />
В Oracle также нет функции DATEPART (), но существуют несколько других<br />
функций манипулирования датой, которые можно использовать с этой же целью.<br />
Рассмотрим пример:<br />
ВВОД<br />
SELECT order_num<br />
FROM Orders<br />
WHERE to_number(to_char(order_date, 'YY')) = 2004;<br />
Анализ<br />
В этом примере функция to_char () используется для извлечения части даты, а<br />
функция to_number() – для преобразования этой части в числовое значение, чтобы его<br />
можно было сравнить со значением 2004.<br />
Тех же результатов можно добиться при помощи оператора BETWEEN:<br />
ВВОД<br />
SELECT order_num<br />
FROM Orders<br />
WHERE order_date BETWEEN to_date('01-JAN-2004')<br />
AND to date('31-DEC-2004');<br />
Анализ<br />
В этом примере функция Oracle to_date () используется для преобразования двух<br />
строк в даты. В одной содержится дата I января 2004, а в другой – 31 декабря 2004.<br />
Стандартный оператор BETWEEN используется для поиска всех заказов, сделанных в<br />
период между этими двумя датами. Этот код не будет работать в SQL Server, так как в<br />
этой СУБД не поддерживается функция to_date (). Однако если заменить функцию to_date<br />
() функцией DATAPART (), этот оператор можно будет использовать.<br />
Даты в Oracle<br />
Даты в формате ДД-МММ-ГГГГ (как в предыдущих примерах) системой Oracle обычно<br />
обрабатываются, даже если они не приведены к тому виду, как при использовании<br />
функции to_date (). Однако для надежности лучше всегда использовать эту функцию.<br />
В приведенных примерах выбиралась и использовалась только часть даты (год).<br />
Чтобы выбрать заказы по месяцу, необходимо сделать то же самое, указав ключевое слово<br />
AND для сравнения месяца и года.<br />
СУБД обычно могут выполнять гораздо больше действий, чем просто выборка<br />
части даты. В большинстве из них присутствуют функции для сравнения дат, выполнения