2017-04-21 1 views
2
DECLARE @PreviousMonthStart DATETIME 
DECLARE @PreviousMonthEnd DATETIME 

SET @PreviousMonthStart = DATEADD(m,DATEDIFF(m,0,GETDATE())-1,0) 
SET @PreviousMonthEnd = DATEADD(ms,-2,DATEADD(month, DATEDIFF(month, 0, GETDATE()), 0)) 

PRINT @PreviousMonthStart 
PRINT @PreviousMonthEnd 

쿼리 위 실행될 때 결과 집합은 다음 형식날짜 시간 관련 쿼리

Mar 1 2017 12:00AM 
Mar 31 2017 11:59PM 

에 그러나 나는 형식

2017-04-01 00:00:00.000 

어떤 도움 아래에서 결과 집합이 필요

+0

그들은 * * 형식이 없습니다. 잘만되면 명백한 이유 때문에 그것들을 문자열로 변형시켜야하는 것은 '인쇄물'일뿐입니다. '날짜/시간'으로 유지하는 한 형식이 없으며 서식 문제가 없습니다. –

답변

0

결과를 보려면 PRINT을 사용하기 때문에 t-sql의 결과가 원하는 것입니다. 결과를 인쇄하기 전에 varchar에 캐스팅합니다.

PRINT 대신 선택을하면 표시하려는 내용이 표시됩니다.

DECLARE @PreviousMonthStart DATETIME 
DECLARE @PreviousMonthEnd DATETIME 

SET @PreviousMonthStart = DATEADD(m,DATEDIFF(m,0,GETDATE())-1,0) 
SET @PreviousMonthEnd = DATEADD(ms,-2,DATEADD(month, DATEDIFF(month, 0, GETDATE()), 0)) 


SELECT @PreviousMonthStart  -- Result: 2017-03-01 00:00:00.000 
SELECT @PreviousMonthEnd  -- Result: 2017-03-31 23:59:59.997 

PRINT @PreviousMonthStart  -- Result: Mar 1 2017 12:00AM 
PRINT @PreviousMonthEnd   -- Result: Mar 31 2017 11:59PM 
0

CONVERT에 print 문을 사용하여 선언 된 변수를 추가 할 수 있습니다.

DECLARE @PreviousMonthStart DATETIME 
DECLARE @PreviousMonthEnd DATETIME 

SET @PreviousMonthStart = DATEADD(m,DATEDIFF(m,0,GETDATE())-1,0) 
SET @PreviousMonthEnd = DATEADD(ms,-2,DATEADD(month, DATEDIFF(month, 0, GETDATE()), 0)) 

PRINT CONVERT(VARCHAR(25),@PreviousMonthStart,120) 
PRINT CONVERT(VARCHAR(25),@PreviousMonthEnd,120) 

출력 : 그들은`datetime`s이야 동안

2017-03-01 00:00:00 
2017-03-31 23:59:59