2011-01-20 36 views
9

Tôi nhận được giá trị thông số ngày là '4-1-2009' từ giao diện người dùng. Bây giờ tôi muốn làm cho nó như làCách thêm một năm vào một ngày bằng cách sử dụng tập lệnh SQL trong máy chủ SQL?

'4-1-2010' trong thủ tục được lưu trữ của tôi. Tôi đang cố gắng như dưới đây.

ALTER PROCEDURE [dbo].[SP_EMP]      

@STARTDATE DATETIME, 

@ENDDATE DATETIME, 

@STARTDATE2 DATETIME, 

SET @STARTDATE2=DATEADD(yy, 1, @STARTDATE) 


AS      
BEGIN 

SELECT EMPNAME FROM EMP WHERE JOINDATE>@STARTDATE2 

----// SOME JOINS //---- 

END 

Tôi làm cách nào để thực hiện việc này? Hãy cho tôi biết.

Kính trọng, N.SRIRAM

Trả lời

3
select dateadd(yy, 1, '20 Jan 2011') 
12

DATEADD chức năng id giải pháp

SELECT DATEADD(year, 1, '4-1-2009') FROM UserLog 

Hoặc

Declare @E DATETIME, 

SET @E=Select DATEADD(year, 1, '4-1-2009') 
+0

Tôi đã sửa đổi câu hỏi của mình. Xin hãy trả lời. – sriramjitendra

0

tôi đã cùng một vấn đề là người đặt ra câu hỏi. Các câu trả lời khác không giải quyết được vấn đề của anh ta.

Điều anh ấy có là biến và cần thay đổi ngày trong đó bằng cách tăng dần. Bạn đã đi đúng hướng.

Đây là một minh chứng bạn có thể sao chép và dán vào SSMS và nó sẽ chỉ hoạt động.

/*First declare your varabiles, you can use date or datetime, or even var only after using dateadd the format will change */ 
Declare @CTCStartDate date 
Declare @CTCEndDate date 

/* Now define your initial values, you may want to have these by a SSRS report or other program */ 
    Set @CTCStartDate = '2015-01-01' 
    Set @CTCEndDate = '2015-11-11' 

    /* See the inital values */ 
    Select @CTCStartDate as InitialStartDT, @CTCEndDate as InitialEndDT 

    /* Increment the year by the number you desire, even this can be a variable */ 
    Set @CTCEndDate = DATEADD(YYYY,1, @CTCEndDate) 
    Set @CTCStartDate = DATEADD(YYYY,1, @CTCStartDate) 

    /* See the final results */ 
    Select @CTCStartDate as StartDT, @CTCEndDate as EndDT 
Các vấn đề liên quan