Разработка приложений баз данных в Delphi. Шейкер Т.Д. - 81 стр.

UptoLike

Составители: 

81
При работе с датами часто возникают проблемы в связи с особенностями
форматов записи. Следующие два примера показывают, что для получения
корректного результата надо знать, в какой последовательности задаются год,
месяц и день.
SELECT FirstName,LastName,HireDate FROM employee
WHERE HireDate>'12/30/93'
Дата 12/30/93 означает: 12 – месяц, 30 –день, 93 – год.
Рис. 27. Дата задана строкой '31.12.1992'
Привычная форма даты 31.12.1992 означает: 31–день, 12–месяц, 1992–год.
Значения дат можно сравнивать друг с другом, вычитать одну из другой.
Пример 3.17. Получить список служащих, проработавших на предпри-
ятии к 1/01/2000 более 8 лет:
SELECT FirstName,LastName,HireDate FROM employee
WHERE '1/01/2000'-HireDate > 8*365+2
Пример 3.18. Получить список сотрудников, поступивших на работу до
1.01.89 и после 31.12.93, то есть раньше 1989 г. и позже 1993 г.:
SELECT FirstName,LastName,HireDate FROM employee
WHERE HireDate NOT BETWEEN "1-JAN-1989" AND "31-DEC-1993"
Кроме абсолютных дат некоторые реализации языка SQL (например, Inter
Base) позволяют оперировать относительными значениями: yesterday (вчера),
today (сегодня), now (сейчас, включая время), tomorrow (завтра).
      При работе с датами часто возникают проблемы в связи с особенностями
форматов записи. Следующие два примера показывают, что для получения
корректного результата надо знать, в какой последовательности задаются год,
месяц и день.
SELECT FirstName,LastName,HireDate FROM employee
                  WHERE HireDate>'12/30/93'
      Дата 12/30/93 означает: 12 – месяц, 30 –день, 93 – год.




                    Рис. 27. Дата задана строкой '31.12.1992'


      Привычная форма даты 31.12.1992 означает: 31–день, 12–месяц, 1992–год.
      Значения дат можно сравнивать друг с другом, вычитать одну из другой.
      Пример 3.17. Получить список служащих, проработавших на предпри-
ятии к 1/01/2000 более 8 лет:
SELECT FirstName,LastName,HireDate FROM employee
WHERE '1/01/2000'-HireDate > 8*365+2
      Пример 3.18. Получить список сотрудников, поступивших на работу до
1.01.89 и после 31.12.93, то есть раньше 1989 г. и позже 1993 г.:
SELECT FirstName,LastName,HireDate FROM employee
WHERE HireDate NOT BETWEEN "1-JAN-1989" AND "31-DEC-1993"
      Кроме абсолютных дат некоторые реализации языка SQL (например, Inter
Base) позволяют оперировать относительными значениями: yesterday (вчера),
today (сегодня), now (сейчас, включая время), tomorrow (завтра).


                                        81