2012-04-19 45 views
8

Làm cách nào để tính ngày sau một tháng hiện tại.Cách tính ngày sau 1 tháng currentDate

Ví dụ nếu tôi có 19/04/2012, tôi muốn nhận được ngày 19/05/2012. Có chức năng trên sql cho phép làm điều này?

tôi cần phải làm như vậy trong vòng một năm cũng như 19/04/2012 và thiết lập 19/04/2013

Cheers

Trả lời

14

Bạn có thể sử dụng DATEADD (datepart, số, ngày)

theo quy định here

Ví dụ (nhờ DarrenDavis)

trong tháng:

select dateadd(m, 1, getdate()) 

cho năm:

select dateadd(YY, 1, getdate()) 
+0

Cảm ơn bạn rất nhiều !! – CPM

+0

là có thể có ngày có giờ cụ thể, như sau 1 tháng nhưng thời gian phải là 4 giờ chiều, vì vậy sẽ là 2012-04-19 16:00:00 – CPM

+0

bạn có thể thử điều này ... http: // stackoverflow.com/questions/4952207/set-time-portion-of-a-datetime-variable – Mithir

1

Sử dụng dateadd() chức năng

SELECT dateadd(mm, 1, '19-Apr-2012') 
0

Bạn có thể sử dụng DateAdd:

select dateadd(m, 1, getdate()) 
select dateadd(yy, 1, getdate()) 

tìm kiếm trực tuyến cho các chỉ số thời gian khác như giờ, phút, v.v.

+1

Điều này sẽ không hoạt động: SELECT DATEADD (Y, 1, GETDATE()) - Nó cần phải được YY –

+0

Cố định, cảm ơn bạn! –

0

Bạn có thể sử dụng truy vấn này trong vòng 1 tháng trước ngày. Truy vấn này hoạt động tốt trong oracle.

select add_months(trunc(sysdate),1) from dual; 

Đối với 1 năm trước ngày sử dụng truy vấn này

select add_months(trunc(sysdate),12) from dual; 
+0

Câu hỏi này nhằm vào SQL Server (như được gắn thẻ) - Không có hàm SQL Server add_months và không có bảng kép. –

+0

Tôi không thấy điều đó :) – hitman047

Các vấn đề liên quan