Изменить код истечения срока действия членства в таблице SQL
Привет
У меня есть запрограммированная таблица в SQL, которую мне нужно изменить, чтобы она использовала текущую дату запроса, а затем истекала ровно через год. В настоящее время мой код использует правило off usign a date format до 15 числа каждого месяца, и когда мы регистрируемся в нашей системе, он либо дает членскому номеру срок действия 13 месяцев, а не 12. Мне нужно изменить код belwo, и я новичок в SQL, не могли бы вы помочь, пожалуйста
/****** Object: StoredProcedure [dbo].[CP_Create_Card] Script Date: 2016-11-29 08:41:26 AM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: <author,,name> -- Create date: <create date,,=""> -- Description: <description,,> -- ============================================= ALTER PROCEDURE [dbo].[CP_Create_Card] -- Add the parameters for the stored procedure here @membershipNumber VARCHAR(MAX), @CardId BIGINT = NULL OUTPUT, @minsToFirstDeadline int = 2880,--defailt 2 days @minsToSecondDeadline int = 5760 --default 4 days AS BEGIN DECLARE @CreatedDate DATETIME = GETDATE() DECLARE @ExpiryDate DATETIME DECLARE @FirstDeadine DATETIME DECLARE @SecondDeadline DATETIME IF DAY(@CreatedDate) < 15 BEGIN SELECT @ExpiryDate = DATEADD(YEAR, 1, DATEADD(d, -1, DATEADD(m, DATEDIFF(m, 0, @CreatedDate) + 1, 0))) END ELSE BEGIN SELECT @ExpiryDate = DATEADD(YEAR, 1, DATEADD(d, -1, DATEADD(m, DATEDIFF(m, 0, @CreatedDate) + 2, 0))) END SELECT @FirstDeadine = DATEADD(MINUTE,@minsToFirstDeadline,GETDATE()) SELECT @SecondDeadline = DATEADD(MINUTE,@minsToSecondDeadline,GETDATE()) --Create Card Linked to Membership below IF EXISTS(SELECT * FROM Cards WHERE MembershipNumber = @membershipNumber AND Enabled = 1) BEGIN UPDATE Cards SET Enabled = 0 WHERE MembershipNumber = @membershipNumber AND Enabled = 1 END INSERT INTO Cards (CardStatusId, MembershipNumber, PrintedDate, Created, Modified, ExpiryDate,FirstDeadline,SecondDeadline, Enabled) VALUES(1, @membershipNumber, @CreatedDate, @CreatedDate, @CreatedDate, @ExpiryDate,@FirstDeadine,@SecondDeadline, 1) SET @CardId = SCOPE_IDENTITY() -- Return Card Id END
Что я уже пробовал:
Не знаю как изменить раздел
Если день (@CreatedDate) < 15
НАЧАТЬ
Выберите @ExpiryDate = функция dateadd(год, 1, функция dateadd(д, -1, функция dateadd(M, то функция datediff(М, 0, @CreatedDate) + 1, 0)))
КОНЕЦ
ЕЩЁ
НАЧАТЬ
Выберите @ExpiryDate = функция dateadd(год, 1, функция dateadd(д, -1, функция dateadd(M, то функция datediff(М, 0, @CreatedDate) + 2, 0)))
КОНЕЦ