이달의 마지막 날을 찾기 위한 SQL 쿼리
다음 형식으로 한 달의 마지막 날을 찾아야 합니다.
"2013-05-31 00:00:00:000"
아무나 도와주세요.
이거 먹어봐요.
CREATE FUNCTION [dbo].[udf_GetLastDayOfMonth]
(
@Date DATETIME
)
RETURNS DATETIME
AS
BEGIN
RETURN DATEADD(d, -1, DATEADD(m, DATEDIFF(m, 0, @Date) + 1, 0))
END
쿼리:
DECLARE @date DATETIME
SELECT @date = '2013-05-31 15:04:10.027'
SELECT DATEADD(d, -1, DATEADD(m, DATEDIFF(m, 0, @date) + 1, 0))
출력:
-----------------------
2013-05-31 00:00:00.000
이 질문은 SQL Server 2005에 대한 질문인 것으로 알고 있습니다. 하지만 언급하고 싶은 것은 SQL 2012의 경우 다음과 같습니다.EOMONTH()
이달의 마지막 날을 나타내는 함수입니다.원래 질문자가 지정한 형식으로 해당 항목을 가져오려면 해당 항목에 캐스트해야 합니다.datetime
.
SELECT CAST(eomonth(GETDATE()) AS datetime)
SQL Server 2012에는 다음과 같은 기능이 도입되었습니다.
select eomonth('2013-05-31 00:00:00:000')
-->
2013-05-31
declare @date datetime;
set @date = getdate(); -- or some date
select dateadd(month,1+datediff(month,0,@date),-1);
dateadd(month,1+datediff(month,0,getdate()),-1)
런 체크하기
print dateadd(month,1+datediff(month,0,@date),-1)
Snowflake(및 다른 SQL 엔진)에서는 을 사용할 수 있습니다.
select to_date('2015-05-08T23:39:20.123-07:00') as "DATE",
last_day("DATE", 'MONTH') as "LAST DAY OF MONTH";
다음을 반환합니다.
DATE LAST DAY OF MONTH
2015-05-08 2015-05-31
시도해보세요
SELECT CONVERT(DATE,DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE())+1,0))) AS lastDayOfMonth
Declare @GivenDate datetime
Declare @ResultDate datetime
DEclare @EOMDate datetime
Declare @Day int
set @GivenDate=getdate()
set @GivenDate= (dateadd(mm,1,@GivenDate))
set @Day =day(@GivenDate)
set @ResultDate=dateadd(dd,-@Day+1,@GivenDate)
select @EOMDate =dateadd(dd,-1 ,@ResultDate)
select @EOMDate
보고서 작성을 위해 한 달을 더하고 하루를 뺀 다른 버전:
ex: 월 시작은 '2019-10-01'
dateadd(day,-1,dateadd(month,1,StartofMonth))
월말은 '2019-10-31'이 됩니다.
Select DATEADD(DAY, -(DAY(DATEADD(MONTH, 1, GETDATE()))),DATEADD(MONTH, 1, GETDATE()))
이것은 T-sql에서 잘 작동합니다.
교체GETDATE()
당신의 열 이름을 가진 쿼리의.
그 달의 마지막 날짜를 계산하는 것은 꽤 간단한 계산입니다 -
1 - DATEIFF 기능을 이용하여 오늘 날짜까지의 총 개월 수 찾기 -
Select DATEDIFF(MM,0,GETDATE())
출력 - 1374, getdate() 출력이 "2014-07-23 19:33:46.850"인 경우
2 - 1씩 증가하여 총 개월 수 -
Select DATEDIFF(MM,0,GETDATE())+1
출력 - 1375, Getdate() 출력이 "2014-07-23 19:33:46.850"인 경우
3 - 다음 달 첫 날짜를 맞춥니다.
Select DATEADD(MM,DATEDIFF(MM,0,GETDATE())+1,0)
출력 - '2014-08-01 00:00:00.000', Getdate() 출력이 '2014-07-23 19:33:46.850'인 경우
4 - 다음 달의 첫 번째 날짜에 -1을 빼면 해당 달의 마지막 날짜가 반환됩니다. -
Select DATEADD(DD,-1,DATEADD(MM,DATEDIFF(MM,0,GETDATE())+1,0))
출력 - '2014-07-31 00:00:00.000', Getdate() 출력이 '2014-07-23 19:33:46.850'인 경우
같은 계산 방법으로 다음을 달성할 수 있습니다.
- 다음달마지막날짜
- 전월의 마지막 날짜 등입니다.
TO FIND 1ST and Last day of the Previous, Current and Next Month in Oracle SQL
-----------------------------------------------------------------------------
SELECT
SYSDATE,
LAST_DAY(ADD_MONTHS(SYSDATE,-2))+1 FDPM,
LAST_DAY(ADD_MONTHS(SYSDATE,-1)) LDPM,
LAST_DAY(ADD_MONTHS(SYSDATE,-1))+1 FDCM,
LAST_DAY(SYSDATE)LDCM,
LAST_DAY(SYSDATE)+1 FDNM,
LAST_DAY(LAST_DAY(SYSDATE)+1) LDNM
FROM DUAL
declare @date date=getdate()
declare @st_date date,@end_dt date
set @st_date=convert(varchar(5),year(@date))+'-'+convert(varchar(5),month(@date))+'-01'
set @end_dt=DATEADD(day,-1, DATEADD(month,1,@st_date))
---------**************--------------
select @st_date as [START DATE],@end_dt AS [END DATE]
DATEADD(MONTH, DATEIFF(MONTH, -1, GETDATE())-0, -1) LastDate를 선택합니다.
나의 훌륭한 접근법.안부 전해요
DECLARE @MAXDATE INT=(SELECT MAX(DATEPART(YEAR,ORDERDATE)) FROM Orders)
DECLARE @MINDATE INT=(SELECT MIN(DATEPART(YEAR,ORDERDATE)) FROM Orders)
DECLARE @HORA INT=(SELECT MIN( DATEPART(HOUR,ORDERDATE)) FROM ORDERS)
DECLARE @DIA INT = 28
SELECT Employees.EmployeeID , Orders. OrderID , OrderDate FROM Employees
INNER JOIN Orders
ON Employees.EmployeeID = Orders.EmployeeID
Where (DATEPART(YEAR,ORDERDATE)) >=@mindate and (DATEPART(YEAR,ORDERDATE))<= @maxdate
and DATEPART(HOUR,ORDERDATE)=@HORA and DATEPART(DAY,ORDERDATE) IN (30,31) OR DATEADD(DAY,0,DATEPART(DAY,ORDERDATE))=28 AND
DATEADD(MONTH,0,DATEPART(MONTH,ORDERDATE))=2
ORDER BY 1 ASC
언급URL : https://stackoverflow.com/questions/16646585/sql-query-to-find-the-last-day-of-the-month
'source' 카테고리의 다른 글
Android Room - simple select query - 기본 스레드에서 데이터베이스에 접근할 수 없음 (0) | 2023.10.31 |
---|---|
함수는 내부 angularjs controller에서 두번 호출됩니다. (0) | 2023.10.31 |
구성 관리자.앱 설정 캐싱 (0) | 2023.10.31 |
이름을 기준으로 도커 이미지를 제거하는 방법은? (0) | 2023.10.31 |
argparse store false(지정되지 않은 경우) (0) | 2023.10.31 |