Как добавить один год к дате, используя SQL-скрипт на SQL-сервере? - PullRequest
9 голосов
/ 20 января 2011

Я получаю значение параметра даты как 4-1-2009 из внешнего интерфейса. Теперь я хочу сделать это как

'4-1-2010' в моей хранимой процедуре. Я пытаюсь, как показано ниже.

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

Как я могу это сделать? Пожалуйста, скажите мне.

С уважением, N.SRIRAM

Ответы [ 4 ]

12 голосов
/ 20 января 2011

dateAdd функция id решение

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

Или

Declare @E DATETIME,

SET @E=Select DATEADD(year, 1, '4-1-2009')
3 голосов
/ 20 января 2011
select dateadd(yy, 1, '20 Jan 2011')
0 голосов
/ 27 февраля 2019

Представьте, что вы хотите увеличить все статьи, которые есть на вашем сайте, на один год, если вы хотите изменить его только при отображении:

SELECT DATEADD(year, 1, CreationDateTime) AS CreationDateTime
FROM [dbo].[Articles]

Вы можете поместить '2009/04/01' вместо CreationDateTime. Если вы также хотите изменить значение в базе данных:

UPDATE [dbo].[Articles] SET CreationDateTime = DATEADD(year, 1, CreationDateTime)

К вашему сведению, если вы хотите уменьшить год, это будет выглядеть так: DATEADD(year, -1, CreationDateTime)

Подробнее здесь

0 голосов
/ 17 мая 2016

У меня была та же проблема, что и у человека, задающего вопрос. Другие ответы не касаются его вопроса.

То, что у него есть, это переменные, и нужно изменить дату в них, увеличивая. Вы были на правильном пути.

Вот демонстрация, которую вы можете скопировать и вставить в SSMS, и она будет просто работать.

    /*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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...