Изучаем sql



Pdf көрінісі
бет131/261
Дата28.07.2022
өлшемі1,6 Mb.
#147825
1   ...   127   128   129   130   131   132   133   134   ...   261
Байланысты:
Изучаем SQL ( PDFDrive )

148
Глава 7. Создание, преобразование и работа с данными
UPDATE transaction
SET txn_date = DATE_ADD(txn_date, 
INTERVAL '3:27:11' HOUR_SECOND
)
WHERE txn_id = 9999;
В этом примере функция берет значение столбца 
txn_date
, добавляет
к нему 3 часа 27 минут и 11 секунд и изменяет столбец 
txn_date
, встав
ляя в него результирующее значение.
Или если в отделе кадров обнаруживают, что сотрудник с ID 4789 по
записанным данным моложе, чем на самом деле, можно добавить к да
те его рождения, скажем, 9 лет и 11 месяцев:
UPDATE employee
SET birth_date = DATE_ADD(birth_date, 
INTERVAL '911' YEAR_MONTH
)
WHERE emp_id = 4789;
Для пользователей SQL Server предыдущий пример можно бы
ло бы реализовать с помощью функции 
dateadd()
:
UPDATE employee
SET birth_date =
DATEADD(MONTH, 119, birth_date)
WHERE emp_id = 4789
В SQL Server нет комбинированных интервалов (т. е. 
year_month
),
поэтому 9 лет 11 месяцев были преобразованы в 119 месяцев.
Пользователи Oracle Database могут для данного примера при
менить функцию 
add_months()
:
UPDATE employee
SET birth_date = ADD_MONTHS(birth_date, 119)
WHERE emp_id = 4789;
Иногда требуется добавить интервал времени к определенной дате, при
этом известна конечная дата выполнения, но неизвестно, сколько дней
осталось до этой даты. Например, клиент банка регистрируется в сете
вой банковской системе и планирует перевод на конец месяца. Вместо
того чтобы писать какойто код, определяющий текущий месяц и вы
числяющий количество дней в этом месяце, можно вызвать функцию
last_day()
(последний день), которая сделает всю работу (и MySQL,
и Oracle Database включают функцию 
last_day()
; в SQL Server сопос
тавимой функции нет). Если клиент запрашивает перевод 25 марта
2005 года, последний день марта можно найти следующим образом:
mysql> 


Достарыңызбен бөлісу:
1   ...   127   128   129   130   131   132   133   134   ...   261




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет