В СУБД Firebird для работы с данными, содержащими дату и время, используются типы данных DATE
, TIME
и TIMESTAMP
.В 3-м диалекте присутствуют все три вышеназванных типа данных, а в 1-м для операций с датой и временем доступен только тип данных DATE, который не тождественен типу данных DATE
3-го диалекта, а является типом данных TIMESTAMP
из 3-го диалекта.
Note
|
В диалекте 1 тип DATE может быть объявлен как TIMESTAMP .Такое объявление является рекомендуемым для новых баз данных в 1-м диалекте.
|
Доли секунды
В типах TIMESTAMP
и TIME
Firebird хранит секунды с точностью до десятитысячных долей.Если вам необходима более низкая гранулярность, то точность может быть указана явно в виде тысячных, сотых или десятых долей секунды в базах данных в 3 диалекте и ODS 11 и выше.
Note
|
Несколько полезных сведений о точности секунд
Временная часть типов TIME или TIMESTAMP представляет собой 4-байтный целое (WORD) вмещающее значение времени с долями секунды, и хранящаяся как количество десятитысячных долей секунды прошедших с полуночи.Фактическая точность значений полученных из time(stamp) функций и переменных будет следующей:
-
CURRENT_TIME — по умолчанию имеет точность до секунды, точность до миллисекунд может быть указана следующим образом CURRENT_TIME (0 | 1 | 2 | 3)
-
CURRENT_TIMESTAMP — по умолчанию имеет точность до миллисекунды, точность от секунд до миллисекунд может быть указана следующим образомCURRENT_TIMESTAMP (0 | 1 | 2 | 3)
-
LOCALTIME — по умолчанию имеет точность до секунды, точность до миллисекунд может быть указана следующим образомLOCALTIME (0 | 1 | 2 | 3)
-
LOCALTIMESTAMP — по умолчанию имеет точность до миллисекунды, точность от секунд до миллисекунд может быть указана следующим образомLOCALTIMESTAMP (0 | 1 | 2 | 3)
-
Литерал 'NOW' имеет точность до миллисекунд;
-
Функции DATEADD и DATEDIFF поддерживают точность до десятых долей миллисекунд.
-
Функция EXTRACT возвращает значения с точностью до десятых долей миллисекунды для аргументов SECOND и MILLISECOND ;
|