-
zorik © (24.01.09 12:02) [0]Приходят идеи перебора (28,29,30,31) или как-то от следующего месяца отнять один день...
-
zorik © (24.01.09 14:20) [1]решил с помощью ХП
m = (extract (month from zdate));
y = (extract (year from zdate));
m = m + 1;
if (m > 12) then
begin
m = 1;
y = y1 + 1;
end
date2 = cast('1.'||m||'.'||y as date) - 1; -
Виталий Панасенко (24.01.09 14:21) [2]Вообще-то, формат даты -ГГГГ-ММ-ДД
-
zorik © (24.01.09 14:28) [3]
-
Виталий Панасенко (24.01.09 14:40) [4]
> zorik © (24.01.09 14:28) [3]
И? -
zorik © (24.01.09 14:54) [5]Работает двумя способами
-
из фака:<количество дней в месяце даты YourDate> =
==========================================
EXTRACT(DAY FROM
CAST('01.'||EXTRACT(MONTH FROM TmpDate)||'.'||
EXTRACT(YEAR FROM TmpDate) AS DATE) - 1);
где
TmpDate =
CAST('01.'||EXTRACT(MONTH FROM YourDate)||'.'||EXTRACT(YEAR FROM YourDate) AS DATE) + 32;
соответственно подумав, можно получить с -1 к количеству дней в месяце. -
makz (25.01.09 15:17) [7]в fb2.1 есть dateadd, c ним проще.
-
Труп Васи Доброго © (26.01.09 16:54) [8]если FB 2.1, то проще так
select DATEDIFF(day,cast('01.02.2008' as date), cast('01.03.2008' as date)) from rdb$database;
автоматически учитывает високосность года