powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как определить, сколько дней в месяце?
7 сообщений из 7, страница 1 из 1
Как определить, сколько дней в месяце?
    #36408975
Павел Гужанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите пожалуйста, есть ли функция в DB2, которая возвращает количество дней в месяце?

Например function_name(date('01.01.2010')) должна вернуть 31
...
Рейтинг: 0 / 0
Как определить, сколько дней в месяце?
    #36409031
BuryCommoner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAY(last_day(CURRENT DATE))
...
Рейтинг: 0 / 0
Как определить, сколько дней в месяце?
    #36409146
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Павел Гужанов,

Если у вас не 9.7, то вы можете создать такую функцию сами:
Код: plaintext
1.
2.
3.
4.
create function last_day(d date)
returns date
deterministic
no external action
return values d - (day(d)- 1 ) days +  1  month -  1  day
...
Рейтинг: 0 / 0
Как определить, сколько дней в месяце?
    #36498714
BuryCommoner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашёл метод покороче, но потом понял, что это тоже самое, что у Марка:
Код: plaintext
SET d = d +  1  MONTH - DAY(d) DAYS;

---------------------------------------------------------
IS NULL OR NOT IS NULL
...
Рейтинг: 0 / 0
Как определить, сколько дней в месяце?
    #36498719
Lkhiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
DAY(last_day(date_func|date_column|date_literal|timestamp_func|timestamp_column|timestamp_literal))

Lenny
...
Рейтинг: 0 / 0
Как определить, сколько дней в месяце?
    #36499023
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BuryCommonerНашёл метод покороче, но потом понял, что это тоже самое, что у Марка:
Код: plaintext
SET d = d +  1  MONTH - DAY(d) DAYS;

Это не одно и то же, здесь важен порядок вычислений.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
select
  d
, d +  1  month plus1month
, d +  1  MONTH - DAY(d) DAYS wrong
, d - (day(d)- 1 ) days +  1  month -  1  day correct
from table(values 
  date('2010-01-28')
, date('2010-01-29')
, date('2010-01-30')
, date('2010-01-31')
) t(d)
order by  1 
Дело в особенности вычисления выражения 'date + 1 month'
...
Рейтинг: 0 / 0
Как определить, сколько дней в месяце?
    #36503052
BuryCommoner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вон оно что. А я уже в рабочей процедуре применил, не потестив как следует. Спасибо.

---------------------------------------------------------
IS NULL OR NOT IS NULL
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как определить, сколько дней в месяце?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]