Книга: 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;

Оглавление книги


Генерация: 0.060. Запросов К БД/Cache: 0 / 0
поделиться
Вверх Вниз