2010-03-22 7 views
3

나는 이번 달의 마지막 날을 가져야한다. 어떻게 얻을 수 있습니까당월 마지막 날?

+1

정확한 복제본 : http://stackoverflow.com/questions/182742/how-do-i-calculate-the-last-day-of-the-month-in-sql – Gabe

+1

어떤 DB 서버입니까? – beach

+0

SQL 구현을 알아야합니다. – galford13x

답변

4
set dateformat dmy 

select dateadd(d, -1, dateadd(m, 1, '01-' + convert(varchar, month(getdate())) + '-' + convert(varchar, year(getdate())))) 

이달 초부터 1 일을 더한 달을 더하십시오.

+0

괜찮습니다. –

0

오라클

SELECT LAST_DAY(SYSDATE) AS Last_day_of_month FROM DUAL; 

SQL 서버

SELECT DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE())+1,0)) AS Last_day_of_month 
+0

1 월 31 일과 같은 모든 경우에 작동하지 않습니다. 한 달을 추가하고 Feb 28/29를 받으십시오. 31을 뺍니다. 실패합니다. – Gullbyrd

+0

Gullbyrd에게 전화 해주십시오. SQL Server 예제를 업데이트했습니다. – beach

5

SQLite는 (sqlite3를)

계산 현재 달의 마지막 날.

SELECT date('now','start of month','+1 month','-1 day'); 

체크 아웃이 링크뿐만 아니라 경우 sqlite3를 sqlite datetime functions

+0

나중에 작동 중입니다. –

0

대안을 사용하여이 :

select day(dateAdd(d, -day(dateAdd(m,1,'2012-01-31')), dateAdd(m, 1, '2012-01-31')))

: 다음 새 달의 결과 일 값을 빼기 날짜에 한 달을 추가
1

계산을위한 SQLite 쿼리 오늘의 숫자 오늘의 숫자

select strftime('%d',datetime('now','start of month','+1 month','-1 second')); 
관련 문제