Вниз
Скачать: CL | DM;

как в Firebird узнать количество дней в месяце?   Найти похожие ветки 

← →
zorik ©   (2009-01-24 12:02) [0]

Приходят идеи перебора (28,29,30,31) или как-то от следующего месяца отнять один день...


← →
zorik ©   (2009-01-24 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;


← →
Виталий Панасенко   (2009-01-24 14:21) [2]

Вообще-то, формат даты  -ГГГГ-ММ-ДД


← →
zorik ©   (2009-01-24 14:28) [3]

http://delphimaster.net/view/3-1230191328/


← →
Виталий Панасенко   (2009-01-24 14:40) [4]


> zorik ©   (24.01.09 14:28) [3]

И?


← →
zorik ©   (2009-01-24 14:54) [5]

Работает двумя способами


← →
Johnmen ©   (2009-01-24 19:41) [6]

из фака:
<количество дней в месяце даты 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   (2009-01-25 15:17) [7]

в fb2.1 есть dateadd, c ним проще.


← →
Труп Васи Доброго ©   (2009-01-26 16:54) [8]

если FB 2.1, то проще так
select DATEDIFF(day,cast("01.02.2008" as date), cast("01.03.2008" as date)) from rdb$database;
автоматически учитывает високосность года



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.008 c
15-1257523019
Nikols
2009-11-06 18:56
2010.01.10
Программа для удаленного управления.


2-1258701942
Андрей Смирнов
2009-11-20 10:25
2010.01.10
D2009 PChar является PWideChar, как правельно?


15-1257656938
Тимофей
2009-11-08 08:08
2010.01.10
анимация в делфи


2-1258233401
Proton
2009-11-15 00:16
2010.01.10
TMediaPlayer in Thread


1-1232969686
Валера
2009-01-26 14:34
2010.01.10
Как узнать версию Office?




   Наверх