Книга: Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
Функции даты и времени
Функции даты и времени
FBUDF |
DOW(VALUE) |
Linux, Win32 |
Получает тип TIMESTAMP и возвращает день недели (на английском языке) в качестве строки со смешанными строчными и прописными буквами |
Аргументы |
VALUE- столбец или выражение, результатом вычисления которого является тип TIMESTAMP |
Возвращаемое значение |
'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday' или 'Sunday' |
Пример |
Этот оператор добавляет четыре дня и возвращает день недели для настроенной даты: SELECT DOW(CURRENT_DATE + 4) FROM RDB$DATABASE; |
Связанные или похожие функции |
См. также SDOW(), внешнюю функцию EXTRACT() |
FBUDF |
SDOW(VALUE) |
Linux, Win32 |
Получает тип TIMESTAMP и возвращает день недели (на английском языке) в качестве аббревиатуры со смешанными строчными и прописными буквами |
Аргументы |
VALUE - столбец или выражение, результатом вычисления которого является тип TIMESTAMP |
Возвращаемое значение |
'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' или 'Sun' |
Пример |
Этот оператор добавляет четыре дня и возвращает день недели для настроенной даты: SELECT SDOW(CURRENT_DATE + 4) FROM RDB$DATABASE; |
Связанные или похожие функции |
См. также DOW(), внешнюю функцию EXTRACT() |
FBUDF |
ADDDAY(VALUE1, VALUE2) |
Linux, Win32 |
Добавляет полное число дней к типу даты или времени и возвращает эту измененную дату в виде TIMESTAMP |
Аргументы |
VALUE1: столбец или выражение, результатом вычисления которого является тип даты или времени. VALUE2: количество добавляемых дней (целое число) или целое выражение |
Возвращаемое значение |
Настроенное TIMESTAMP (эквивалентно VALUE1 + VALUE2) |
Замечания |
Если входом является тип TIME, то дни будут добавлены к этому времени дня текущей даты. Если это тип DATE, ТО время дня будет полночью |
Пример |
Следующий оператор прибавляет 4 дня к текущей дате и возвращает полученную дату и время 0 часов 0 минут 0 секунд: SELECT ADDDAY(CURRENT_DATE, 4) FROM RDB$DATABASE; |
Связанные или похожие функции |
См. также ADDHOUR(), ADDMINUTE() и др. |
FBUDF |
ADDHOUR(VALUE1, VALUE2) |
Linux, Win32 |
Добавляет полное количество часов к типу даты или времени и возвращает измененную дату в виде типа TIMESTAMP |
Аргументы |
VALUE1: столбец или выражение, результатом вычисления которого является тип даты или времени. VALUE2: количество добавляемых часов (целое число) или целое выражение |
Возвращаемое значение |
Настроенное значение TIMESTAMP (эквивалентно VALUE1 + (VALUE2 / 2)) |
Замечания |
Если входное значение имеет тип TIME, ТО часы добавляются к этому времени для текущей даты. Если это тип DATE, то время дня будет полночью |
Пример |
Следующий оператор добавляет 10 часов и возвращает измененную дату и время: SELECT ADDHOUR(CURRENT_TIMESTAMP, 10) FROM RDB$DATABASE; |
Связанные или похожие функции |
См. также ADDDAY(), ADDMINUTE() и т.д. |
FBUDF |
ADDMILLISECOND(VALUE1, VALUE2) |
Linux, Win32 |
Добавляет полное количество миллисекунд к типу даты или времени и возвращает измененную дату в виде типа TIMESTAMP |
Аргументы |
VALUE1: столбец или выражение, результатом вычисления которого является тип даты или времени. |
VALUE2: количество добавляемых миллисекунд (целое число) или целое выражение |
Возвращаемое значение тип TIMESTAMP |
Замечания |
Если входное значение имеет тип TIME, то миллисекунды добавляются к этому времени для текущей даты. Если это тип DATE, то время дня будет полночью |
Пример |
Следующий оператор добавляет 61 234 миллисекунды к текущему системному времени типа TIMESTAMP: SELECT ADDMILLISECOND(CURRENT_TIME, 61234) FROM RDB$DATABASE; |
Связанные или похожие функции |
См. также ADDDAY(), ADDMINUTE() и т.д. |
FBUDF |
ADDMINUTE(VALUE1, VALUE2) |
Linux, Win32 |
Добавляет полное количество минут к типу даты или времени и возвращает измененную дату в виде типа TIMESTAMP |
Аргументы |
VALUE1: столбец или выражение, результатом вычисления которого является тип даты или времени. VALUE2: количество добавляемых минут (целое число) или целое выражение |
Возвращаемое значение |
тип TIMESTAMP |
Замечания |
Если входное значение имеет тип TIME, ТО минуты добавляются к этому времени для текущей даты. Если это тип DATE, то время дня будет полночью |
Пример |
Следующий оператор добавляет 45 минут к текущему системному времени типа TIMESTAMP: SELECT ADDMINUTE(CURRENT_TIME, 45) FROM RDB$DATABASE; |
Связанные или похожие функции |
См. также ADDDAY(), ADDSECOND() и т.д. |
FBUDF |
ADDMONTH(VALUE1, VALUE2) |
Linux, Win32 |
Добавляет полное количество месяцев к типу даты или времени и возвращает измененную дату в виде типа TIMESTAMP |
Аргументы |
VALUE1: столбец или выражение, результатом вычисления которого является тип TIMESTAMP. VALUE2: количество добавляемых месяцев (целое число) или целое выражение |
Возвращаемое значение |
Тип TIMESTAMP, календарный месяц более поздний, чем VALUE1 |
Замечания |
Если входное значение имеет тип TIME, то месяцы добавляются к этому времени дня для текущей даты. Если это тип DATE, ТО время дня будет полночью |
Пример |
Следующий оператор использует ADDMONTH() для вычисления даты завершения контракта: UPDATE CONTRACT SET FINAL_DATE = CASE CONTRACT_TERM WHEN 'HALF-YEARLY' THEN ADDMONTH(START_DATE, 6) WHEN 'YEARLY' THEN ADDMONTH(START_DATE, 12) ELSE ADDWEEK(START DATE, TRUNCATE (CONTRACT_AMT/WEEKLY_/EE) ) END WHERE START_DATE IS NOT NULL AND AMT PAID IS NOT NULL AND WEEKLY_FEE IS NOT NULL AND CONTRACTED = 1.2345; |
Связанные или похожие функции |
См. также ADDDAY(), ADDYEAR() и т.д. |
FBUDF |
ADDSECOND(VALUE1 , VALUE2) |
Linux, Win32 |
Добавляет полное количество секунд к типу даты или времени и возвращает измененную дату в виде типа TIMESTAMP |
Аргументы |
VALUE1: столбец или выражение, результатом вычисления которого является тип даты или времени. VALUE2: количество добавляемых секунд (целое число) или целое выражение |
Возвращаемое значение |
Тип TIMESTAMP |
Замечания |
Если входное значение имеет тип TIME, то секунды добавляются к этому времени для текущей даты. Если это тип DATE, то время дня будет полночью |
Пример |
Следующий оператор добавляет 120 секунд к текущей системной дате: SELECT ADDSECOND(CURRENT_DATE, 120) FROM RDB$DATABASE; |
Связанные или похожие функции |
См. также ADDMONTH(), ADDMILLISECOND О и т.д. |
FBUDF |
ADDWEEK(VALUE1, VALUE2) |
Linux, Win32 |
Добавляет полное количество недель к типу даты или времени и возвращает измененную дату в виде типа TIMESTAMP |
Аргументы |
VALUE1: столбец или выражение, результатом вычисления которого является тип даты или времени. VALUE2: количество добавляемых недель (целое число) или целое выражение |
Возвращаемое значение |
Настроенное значение TIMESTAMP (эквивалентно VALUE1 + (7 * VALUE2)) |
Замечания |
Если входное значение имеет тип TIME, то недели добавляются к этому времени для текущей даты. Если это тип DATE, то время дня будет полночью |
Пример |
Следующий оператор вычисляет количество недель выплаты гонорара и использует это в ADDWEEK() для вычисления конечной даты контракта: |
UPDATE CONTRACT |
SET FINAL_DATE = ADDWEEK(START_DATE, TRUNCATE(CONTRACT_AMT/WEEKLY_FEE)) WHERE START DATE IS NOT NULL AND AMT_PAID IS NOT NULL AND WEEKLY_FEE IS NOT NULL AND CONTRACTED = 12345; |
Связанные или похожие функции |
См. также ADDDAY(), ADDMONTH() и т.д. |
FBUDF |
ADDYEAR(VALUE1, VALUE2) |
Linux, Win32 |
Добавляет полное количество лет к типу даты или времени и возвращает измененную дату в виде типа TIMESTAMP |
Аргументы |
VALUE1: столбец или выражение, результатом вычисления которого является тип TIMESTAMP. VALUE2: количество добавляемых лет (целое число) или целое выражение |
Возвращаемое значение |
тип TIMESTAMP |
Замечания |
Если входное значение имеет тип TIME, то годы добавляются к этому времени дня для текущей даты. Если это тип DATE, то время дня будет полночью |
Пример |
Следующий оператор вычисляет конечную дату аренды, получая начальную дату: UPDATE LEASE SET FINAL_DATE = ADDYEAR(START_DATE, 5) WHERE START_DATE IS NOT NULL AND LEASE_ID = 12345; |
Связанные или похожие функции |
См. также ADDDAY(), ADDMONTH() и т.д. |
FBUDF |
GETEXACTTIMESTAMF() |
Linux, Win32 |
Возвращает системное время в виде TIMESTAMP с точностью до ближайших миллисекунд |
Аргументы |
Нет аргументов |
Возвращаемое значение |
Тип TIMESTAMP |
Замечания |
Контекстная переменная даты и времени CURRENT_TIMESTAMP и предварительно определенный литерал 'NOW' возвращают системное время только с точностью до ближайшей секунды, GETEXACTTIMESTAMP() в настоящий момент является единственным способом получить точное системное время |
Пример |
Следующий оператор возвращает точное время и дату: SELECT GETEXACTTIMESTAMP() AS TSTAMP FROM RDB$DATABASE; |
FBUDF |
F_AGEINDAYS(VALUE1, VALUE2) |
Linux, Win32 |
Вычисляет возраст в днях для даты(VALUE1) при ссылке на другую дату ;(VALUE2). Обычно дата, на которую ссылаются, является текущей датой, но это не обязательно должна быть она. Например, вы можете найти время, которое прошло с некоторого другого события |
Аргументы |
VALUE1: столбец или выражение, результатом вычисления которого является значение типа DATE или TIMESTAMP. VALUE2: столбец или выражение, результатом вычисления которого является значение типа DATE или TIMESTAMP |
Возвращаемое значение |
Положительное или отрицательное число типа INTEGER |
Пример |
SELECT FIRST_NAME, LAST_NAME, F_AGEINDAYS(DATE_OF_BIRTH, CURRENT_DATE) AS i CURRENT_AGE | FROM MEMBERSHIP WHERE DATE_OF_BIRTH < CURRENT_DATE - (5 * 365); |
Связанные или похожие функции |
См. также F_AgeInDaysThreshold() |
FREEUDFLIB |
F_AGEINDAYSTHRESHOLD(VALUE 1, VALUE 2, MINVALUE, USEMIN, MAXVALUE, USEMAX |
Win32 |
Вычисляет возраст в днях для даты(VALUE1) при ссылке на другую дату(VALUE2) и возвращает не это значение, а указанное минимальное число, которое меньше вычисленного значения или заданного максимального числа, которое больше вычисленного значения |
Аргументы |
VALUE1: столбец или выражение, результатом вычисления которого является значение типа DATE или TIMESTAMP. VALUE2: столбец или выражение, результатом вычисления которого является значение типа DATE или TIMESTAMP. Это не обязательно должна быть дата, меньшая чем VALUE1 MINVALUE: целое число. Это возвращаемое значение, если вычисленное значение будет меньше. Установите в 0, если вам нужно использовать только MAXVALUE. USEMIN: Установите в 1, если вам нужно использовать только MINVALUE. Установите USEMAX в 0, если вам нужно использовать только MINVALUE. MAXVALUE: целое число. Это возвращаемое значение, если вычисленное значение будет больше. Установите в 0, если вам нужно использовать только MINVALUE. USEMAX: целое число. Установите в 1, если вам нужно использовать MAXVALUE. Установите USEMIN в 0, если вам нужно использовать только MAXVALUE |
Возвращаемое значение |
Число типа INTEGER |
Замечания |
Если последние четыре аргумента установлены в 0, эта функция работает так же, как и F_AGETHRESHOLD |
Пример |
Следующий оператор вернет список, показывающий все счета с датами обязательства, меньше, чем 30 дней тому назад, вместе просроченными на 29 дней обязательствами и все с датами обязательства, более ранними, чем 90 дней тому назад, и просроченными обязательствами на 90 дней. Все остальные будут показаны с их фактическими сроками: SELECT ACCOUNT_NAME, F_AGEINDAYSTHRESHOLD(DUE_DATE, CURRENT_DATE, 29, 1, 90, 1) AS OVERDUE_AGE 1 FROM ACCOUNT; |
Связанные или похожие функции |
См. также AGEINDAYS() |
FREEUDFLIB |
F_AGEINMONTHS(VALUE1, VALUE2) |
Win32 |
Вычисляет возраст в месяцах для даты(VALUE1) при ссылке на другую дату(VALUE2). Обычно дата, на которую ссылаются, является текущей датой, но это не обязательно должна быть она. Например, вы можете найти время, которое прошло с некоторого другого события |
Аргументы |
VALUE1: столбец или выражение, результатом вычисления которого является значение типа DATE или TIMESTAMP. VALUE2: столбец или выражение, результатом вычисления которого является значение типа DATE или TIMESTAMP. Не обязательно должно быть более ранней датой, чем VALUE1 |
Возвращаемое значение |
Положительное или отрицательное число типа INTEGER |
Пример |
SELECT ACCOUNT NAME, F_AGEINMONTHS (DUE_DATE, CURRENT_DATE) AS OVERDUE AGE FROM ACCOUNT WHERE ACCT_BALANCE > 0 AND DUE_DATE < CURRENT_DATE - (6 * 7); |
Связанные или похожие функции |
См. также F_AGEINMONTHSTHRESHOLD() |
FREEUDFLIB |
F_AGEINMOUTHSTHRESHOLD(VALUE1, VALUE2, MIKVALUE, USEWIM, MAXVALUE, USEMAX) |
Win32 |
Работает для F_AgelnMonths так же, как и F_AgeInDaysThreshold работает для F_AGEINDAYS |
Аргументы |
F_AgeInDays |
FREEUDFLIB |
F_AGEINWEEKS(VALUE1, VALUE2) |
Win32 |
Вычисляет возраст в неделях для даты(VALUE1) при ссылке на другую дату(VALUE2). Обычно дата, на которую ссылаются, является текущей датой, но это не обязательно должна быть она. Например, вы можете найти время, которое прошло с некоторого другого события |
Аргументы |
VALUE1: столбец или выражение, результатом вычисления которого является значение типа DATE или TIMESTAMP. VALUE2: столбец или выражение, результатом вычисления которого является значение типа DATE или TIMESTAMP. Не обязательно должно быть более ранней датой, чем VALUE1 |
Возвращаемое значение |
Положительное или отрицательное число типа INTEGER |
Пример |
SELECT ACCOUNT_NAME, F_AGEINWEEKS(DUE DATE, CURRENT_DATE) AS OVERDUE_AGE FROM ACCOUNT WHERE ACCT BALANCE > 0 AND DUE DATE < CURRENT_DATE - (366/2); |
Связанные или похожие функции |
См. также F_AGEINWEEKSTHRESHOLD() |
FREEUDFLIB |
F_AGEINWEEKSTHRESHOLD(VALUE 1, VALUE 2, MIHISVW, USEMIN, MAXVALUE, USEMAX) |
Win32 |
Работает для F_AGEINWEEKS так же, как и F_AgelnDaysThreshold работает для F_AGEINDAYS |
FREEUDFLIB |
F_CMONTHLONG(VALUE) |
Win32 |
Получает TIMESTAMP или DATE и возвращает название месяца (на английском языке) в виде строки |
Аргументы |
VALUE: столбец или выражение, результатом вычисления которого является значение типа DATE или TIMESTAMP |
Возвращаемое значение |
'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November' или 'December' |
Пример |
Следующий оператор добавляет 40 дней к текущей дате и возвращает название месяца полученной даты в виде строки: SELECT F CMONTHLONG(CURRENT_DATE + 40) FROM RDB$DATABASE; |
Связанные или похожие функции |
См. также F CMONTHSHORT(), SDOW(), внешнюю функцию EXTRACT() |
FREEUDFLIB |
F_CMONTHSH0RT(VALUE) |
Win32 |
Получает TIMESTAMP или DATE и возвращает сокращенное трехсимвольное название месяца (на английском языке) в виде строки |
FREEUDFLIB |
F_MAXDATE(VALUE1, VALUE2) |
Win32 |
Получает два значения или выражения типа даты или времени и возвращает более позднюю из них в виде даты и времени (TIMESTAMP В диалекте 3, DATE В диалекте 1) |
Аргументы |
VALUE1: столбец или выражение, результатом вычисления которого является значение типа DATE или TIMESTAMP. VALUE2: столбец или выражение, результатом вычисления которого является значение типа DATE или TIMESTAMP |
Возвращаемое значение |
Наиболее поздняя дата или выражение даты, преобразованное в тип TIMESTAMP |
FREEUDFLIB |
F_MINDATE(VALUE1, VALUE2) |
Win32 |
Получает два значения или выражения типа даты или времени и возвращает более раннюю из них в виде даты и времени (TIMESTAMP В диалекте 3, DATE в диалекте 1) |
Аргументы |
VALUE1: столбец или выражение, результатом вычисления которого является значение типа DATE или TIMESTAMP VALUE2: столбец или выражение, результатом вычисления которого является значение типа DATE или TIMESTAMP |
Возвращаемое значение |
Наиболее ранняя дата или выражение даты, преобразованное в тип TIMESTAMP |
FREEUDFLIB |
F_QUARTER(VALUE) |
Win32 |
Получает значение или выражение типа даты или времени и возвращает квартал года |
Аргументы |
VALUE: столбец или выражение, результатом вычисления которого является значение типа DATE или TIMESTAMP |
Возвращаемое значение |
Возвращает 1 для месяцев с января по март, 2 для апреля - июня, 3 для июля - сентября и 4 для октября - декабря |
FREEUDFLIB |
F_WOY(VALUE) |
Win32 |
Возвращает строку, являющуюся конкатенацией года и номера недели в году |
Аргументы |
VALUE: столбец или выражение, результатом вычисления которого является значение типа DATE или TIMESTAMP |
Возвращаемое значение |
Возвращает целое число, представляющее цифры года, за которыми идут два символа, представляющие неделю года |
Пример |
В следующем примере возвращается 200313: SELECT WOY('26.03.2003') FROM RDB$DATABASE; |
- B10. Функции даты и времени: ‹time.h›
- Автоматический ввод текущей даты и времени
- Ожидание в течение конечного интервала времени
- Глава 7 Космология и стрела времени
- Тип даты
- Уменьшение времени, необходимого для резервного копирования и восстановления
- Ограничение времени ожидания для транзакций (Lock timeout)
- Аргументы функции в Python
- 3. Функции
- Новые функции API для работы с Blob и массивами
- 7.12. Объективизация времени
- Квант времени