Читаем SQL за 24 часа полностью

В Sybase для получения системной даты используется функция GETDATE() • В запросах эта функция используется следующим образом (в данном случае текущей датой оказался новогодний вечер конца 1999 года).

SELECT GETDATEO

Dec 31, 1999

Обсуждаемые в этой книге возможности реализаций языка от Sybase и Microsoft применимы в обеих этих реализациях, поскольку обе они в качестве сервера своих баз данных используют SQL Server. Обе эти реализации языка используют одно и то же расширение стандартного SQL, известное как Transact-SQL.

В Огас1едля извлечения системной даты используется то, что в нем называется псевдостолбцом SySDATE- Обращаться с SySDATE можно как с любым другим столбцом в таблице и выбрать его можно из любой таблицы базы данных, хотя он и не является частью определения таблицы.

Для извлечения системной даты в Oracle используется следующий оператор.

SELECT SYSDATE FROM ИМЯ_ТАБЛИЦЫ;

31-DEC-99

Часовые пояса

При работе с датами и временем может возникнуть необходимость учитывать различия во времени для разных часовых поясов. Например, 6 часов вечера в США не соответствует 6 часам вечера в Австралии, хотя с точки зрения мирового времени рассматривается один момент. Там, где используется летнее и зимнее время, приходится корректировать показания часов дважды в год. Если это необходимо, имеется возможность учесть различия во времени или осуществить необходимую корректировку времени с помощью подходящих операторов SQL, если таковые соответствующей реализацией языка предусмотрены.

Вот список некоторых из часовых поясов с принятыми для них аббревиатурами.

Сокращение____ Расшифровка_________

AST, ADT Атлантическое (нью-йоркское) поясное время, летнее время

BST, ВDT Берингово поясное время, летнее время

СSт, CDT Центральное поясное время, летнее время

EST, EDT Восточное пояснее время, летнее время

GMT Всемирное (гринвичское среднее) время или время по Гринвичу

HST, НОТ Гавайское поясное время, летнее время

NST Ньюфаундлендское поясное время

PST, PDT Тихоокеанское время, летнее время

YST, YDT Юкона поясное время, летнее время

В некоторых реализациях SQL имеются средства для учета поясного времени. Уточните по документации имеются ли в используемой вами реализации языка возможности для учета поясного времени, а также вообще оцените необходимость учета поясного времени в вашей конкретной базе данных.

Добавление интервалов времени к датам

К датам можно добавлять дни, месяцы и другие компоненты времени для сравнения дат или, например, для того, чтобы уточнить условия в выражении ключевого слова WHERE в запросе.

Интервалы времени можно добавлять к значениям типа DATETIME. В соответствии со стандартом интервалы времени должны использоваться так, как показано в следующих примерах.

DATE 4999-12-31' + INTERVAL Ч' DAY

'2000-01-01'

DATE 4999-12-31' + INTERVAL '!' MONTH

'2000-01-31'

В следующем примере используется функция DATEADD SQL Server.

SELECT DATEJHIRE, DATEADD(MONTH, 1, DATE_HIRE)

FROM EMPLOYEE_PAY_TBL

DATE_HIRE DATEADD(M)

23-MAY-89 23-JUN-89

17-JUN-90 17-JUL-90

14-AUG-94 14-SEP-94

28-JUN-97 28-JUL-97

22-JUL-96 22-AUG-96

14-JAN-91 14-FEB-91

6 rows affected.

В следующем примере используется функция ADD_MONTH Oracle.

SELECT DATEJHIRE, ADD_MONTH(DATE_HIRE,1)

FROM EMPLOYEE_PAY_TBL;

DATE_HIRE ADD_MONTH

23-MAY-89 23-JUN-89

17-JUN-90 17-JUL-90

14-AUG-94 14-SEP-94

28-JUN-97 28-JUL-97

22-JUL-96 22-AUG-96

14-JAN-91 14-FEB-91

6 rows selected.

Чтобы добавить к дате один день в Oracle, используется следующий оператор.

SELECT DATE_HIRE, DATE_HIRE + 1

FROM EMPLOYEE_PAY_TBL

WHERE EMP_ID = '311549902';

DATE_HIRE DATE_HIRE

23-MAY-89 24-MAY-89 1 row selected.

Обратите внимание на то, что эти примеры из Oracle и SQL Server хотя и отличаются синтаксически от стандарта ANSI, по сути базируются на тех же принципах, что и стандарт SQL.

Сравнение дат и значений времени

Очень полезным условным оператором стандарта SQL для значений типа DATETIME является оператор OVERLAPS. Оператор OVERLAPS используется для сравнения двух отрезков времени и возвращает TRUE (Истина), если эти отрезки времени пересекаются, и FALSE (Ложь) - если нет. Например, в результате следующего сравнения возвращается значение TRUE:

(TIME '01:00:00', TIME '05:59:00')

OVERLAPS

(TIME '05:00:00', TIME '07:00:00')

В результате следующего сравнения возвратится значение FALSE:

(TIME '01:00:00', TIME '05:59:00')

OVERLAPS

(TIME '06:00:00', TIME '07:00:00')

Другие функции для работы с датами

В следующем списке представлены некоторые полезные функции для работы с датами, предлагаемые реализациями Oracle и SQL Server.

DATE PART Возвращает числовое (целое) значение DATE PART для даты

DATENAME Возвращает текстовое значение DATEPART для даты

GETDATE () Возвращает системную дату

DATEDIFF Возвращает разность двух дат для указанных компонентов,

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных