Адрес этой странички : http://doc-prg.narod.ru/art_00951/art_00951.htm 
Дата обновления: 12.04.2009

(c) Sergey Popov, Usinsk, Komi, 2007

© 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 Сергей Попов

 


Hosted by uCoz
-->