Разработка баз данных в Delphi. 11 Уроков

 Работа с датами


Мы уже рассказывали о типах данных, имеющихся в различных СУБД, в том числе и в 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



Содержание раздела