ТИПЫ DATE И TIME
Как упомянуто в Главе 2, тип DATE широко поддерживается, хотя он не является частью стандарта. Мы использовали ранее в нашей таблице Заказов этот тип в формате mm/dd/yyyy. Это стандартный формат IBM в США. Разумеется, возможны и другие форматы, и программные реализации часто поддерживают несколько форматов, позволяя вам выбирать наиболее подходящий.
Реализация, которая предлагает эту особенность, должна быть способна преобразовывать дату одного формата в другой автоматически.
Имеются несколько основных форматов даты с которыми вы можете столкнуться:
СтандартФорматПример Международная Организация По Стандартизации (ISO)yyyy-mm-dd1990-10-31 Японский Индустриальный Стандарт (JIS)yyyy-mm-dd1990-10-31 IBM Европейский Стандарт (EUR)dd.mm.yyyy10.31.1990Наличие специального типа даты даёт возможность выполнять арифметические операции с датами. Например, вы можете добавлять число дней к дате и получать другую дату в программе, самостоятельно следящей за числом дней в месяцах, високосными годами и т.д.
Даты могут также сравниваться; например фраза, дата A < дата B , означает, что дата A предшествует дате B по времени. Помимо даты, большое количество программ определяют специальный тип для времени, который может также быть представлен в ряде форматов, включая следующие:
СтандартФорматПримерМЕЖДУНАРОДНАЯ ОРГАНИЗАЦИЯ ПО СТАНДАРТИЗАЦИИ (ISO) hh-mm-ss21.04.37 Японский Индустриальный Стандарт (JIS )hh-mm-ss21.04.37 IBM Европейский Стандартhh-mm-ss21.04.37 IBM USA Стандарт (USA)hh.mm AM/PM9.04 PMВремя может добавляться или сравниваться точно так же, как дата, с автоматической коррекцией числа секунд в минутах или часах. Кроме того, специально встроенные константы, указывающие текущую дату или время (CURDATE или CURTIME), являются общими. Они похожи на константу USER (Пользователь) в которой их значение будет непрерывно меняться.
Можете ли вы включать время и дату в одно поле? Некоторые реализации определяют тип DATE достаточно точно, чтобы включать туда ещё и TIME. В качестве альтернативы третий обобщающий тип, TIMESTAMP, может быть определен как комбинация этих двух.