2016-04-19 2 views
-1

Учитывая дату, как мне получить количество дней в следующем месяце? Таким образом, если первоначальная дата в декабре он должен дать 31 (января), в январе 28/29 (февраль) и т.д.Как получить количество дней в течение следующего месяца?

+4

Как узнать, действительно ли это високосный год, когда у вас есть только месяц? –

+0

, пожалуйста, укажите пример кода, который вы пытаетесь сделать. –

+0

У меня есть столбец с датой. Но вот что я делаю: я получаю номер месяца с даты в столбце, добавляю +1 к этому номеру, так что в основном это в следующем месяце, и я хочу получить количество дней в этом месяце. Я использую extract (month from p_date) + 1 –

ответ

3

Вы хотите количество дней в следующем месяце? Используйте ADD_MONTHS(), чтобы получить это. Используйте LAST_DAY(), чтобы установить последний день месяца. EXTRACT() ДЕНЬ от этого, чтобы дать количество дней.

Сегодня в апреле, поэтому сколько дней в мае?

SQL> select sysdate 
    2   , extract(day from (last_day(add_months(sysdate, 1)))) days_next_month 
    3 from dual 
    4/

SYSDATE DAYS_NEXT_MONTH 
--------- --------------- 
19-APR-16    31 

SQL> 

Oracle обладает множеством функций даты. Мы можем объединить их друг с другом, чтобы достичь практически любого календарного расчета, которое желает наше сердце. Find out more.

+0

Да, сэр! Это то, что мне нужно. большое спасибо –

1

, если у вас есть столбец даты вы можете получить LAST_DAY и CAST как INT

SELECT CAST(to_char(LAST_DAY(your_date_column),'dd') AS INT) 
FROM your_table; 
0

Вы должны month и year, чтобы получить количество дней в этом месяце

select extract(day from (last_day(to_date('2016/02/01','yyyy/MM/dd')))) from dual; 
Смежные вопросы