Адрес этой странички : http://doc-prg.narod.ru/art_00951/art_00951.htm
Дата обновления: 12.04.2009
© 12.04.2009
Сергей
Попов
SQL-сервер
: Interbase
v 5.5 win32.
Тексты некоторых полезных
хранимых процедур.
Работа с датами.
Эмуляция функции TRUNC (вспомогательная)
CREATE PROCEDURE MY_TRUNC (V DOUBLE
PRECISION)
RETURNS (RES INTEGER)
AS
BEGIN
/* Эмуляция TRUNC */
IF (V IS NULL) THEN V = 0;
RES = CAST(V AS INTEGER);
IF (:RES > :V) THEN RES = :RES - 1;
SUSPEND;
END
Эмуляция функции MOD
(вспомогательная)
MY_MOD
Хранимая процедура возвращает первый год
Грегорианского календаря.
CREATE PROCEDURE FIRST_YEAR_FOR_GREG
RETURNS (YEAR INTEGER)
AS
BEGIN
/* Первый год Грегорианского календаря */
YEAR = 1583;
SUSPEND;
END
Проверка, является ли год високосным (366
дней в году).
YEAR_IS_LEAP
Проверка, является ли тройка чисел -
корректной, как дата (год,месяц,год).
NUMBERS_IS_DATE
Проверка, является ли число YMD - корректной
датой в формате YYYYMMDD.
YMD_IS_DATE
Создать дату в числовом формате(YYYYMMDD) из чисел
Year, Month, Day с проверкой на корректность.
CREATE_DATE_INT
Создать дату в
строковом формате (DD.MM.YYYY) из чисел Year, Month, Day
с проверкой на корректность.
CREATE_DATE_STR
Из
даты в формате YYYYMMDD выделить Год-Месяц в
формате YYYYMM.
EXTRACT_YM_FROM_YMD
Из
даты в формате YYYYMMDD выделить Год.
EXTRACT_YEAR_FROM_YMD
Из
даты в формате YYYYMMDD выделить Месяц.
EXTRACT_MONTH_FROM_YMD
Из
даты в формате YYYYMMDD выделить День.
EXTRACT_DAY_FROM_YMD
Вычислить
количество дней в месяце (с учетом
високосности)
GET_COUNTDAYS_FOR_YM
Вычислить
"размер " даты.
Дата задана тройкой чисел Год, Месяц, День.
GET_SIZEDATE
Вычислить
"размер " даты (используется в D2YMD_MINUS_D1YMD
при вычислении разницы дат).
Дата задана в формате YYYYMMDD.
GET_SIZEDATE_YMD
Вычислить
количество дней между двумя датами.
Даты заданы в формате YYYYMMDD.
D2YMD_MINUS_D1YMD
Вычислить
день недели
(дата - 3 числа: год, месяц, день).
GET_DAYOFWEEK
© 12.04.2009 Сергей
Попов