Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

как в Firebird узнать количество дней в месяце? [Firebird 2.0]


zorik ©   (2009-01-24 12:02:00) 

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


Труп Васи Доброго   (2009-01-26 16:54:00) [1]

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


makz   (2009-01-25 15:17:00) [2]

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


Johnmen   (2009-01-24 19:41:00) [3]

из фака:
<количество дней в месяце даты 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 к количеству дней в месяце.


zorik   (2009-01-24 14:54:00) [4]

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


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


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

И?


zorik   (2009-01-24 14:28:00) [6]

http://www.delphimaster.ru/cgi-bin/forum.pl?id=1230191328&n=1


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

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


zorik   (2009-01-24 14:20:00) [8]

решил с помощью ХП

         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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо