Главная
»
Информационные системы
»
Управление данными
»
ОПЕРАЦИИ С ДАТАМИ В ЯЗЫКЕ SQL
ОПЕРАЦИИ С ДАТАМИ В ЯЗЫКЕ SQL
Работа с датами
Мы уже рассказывали о типах данных, имеющихся в различных СУБД, в том числе и в InterBase. В разных системах имеется различное число встроенных функций, упрощающих работу с датами, строками и другими типами данных. InterBase, к сожалению, обладает достаточно ограниченным набором таких функций. Однако, поскольку язык SQL, реализованный в InterBase, соответствует стандарту, то в нем имеются возможности конвертации дат в строки и гибкой работы с датами. Внутренне дата в InterBase содержит значения даты и времени. Внешне дата может быть представлена строками различных форматов, например:
- October 27, 1995
- 27-OCT-1994
- 10-27-95
- 10/27/95
- 27.10.95
Кроме абсолютных дат, в SQL-выражениях можно также пользоваться относительным заданием дат:
- yesterday - вчера
- today - сегодня
- now - сейчас (включая время)
- tomorrow - завтра
Дата может неявно конвертироваться в строку (из строки), если:
- строка, представляющая дату, имеет один из вышеперечисленных форматов;
- выражение не содержит неоднозначностей в толковании типов столбцов.
SELECT first_name, last_name, hire_date
FROM employee
WHERE hire_date > '1-1-94'
получить список сотрудников, принятых на работу после 1 января 1994 года
FIRST_NAME | LAST_NAME | HIRE_DATE |
Pierre | Osborne | 3-JAN-1994 |
John | Montgomery | 30-MAR-1994 |
Mark | Guckenheimer | 2-MAY-1994 |
Значения дат можно сравнивать друг с другом, сравнивать с относительными датами, вычитать одну дату из другой.
SELECT first_name, last_name, hire_date
FROM employee
WHERE 'today' - hire_date > 365 * 7 + 1
получить список служащих, проработавших на предприятии к настоящему времени более 7 лет
FIRST_NAME | LAST_NAME | HIRE_DATE |
Robert | Nelson | 28-DEC-1988 |
Bruce | Young | 28-DEC-1988 |
Друзья! Приглашаем вас к обсуждению. Если у вас есть своё мнение, напишите нам в комментарии.