2015-09-10 2 views
0

Я написал хранимую процедуру. Я хочу поставить валидацию, в которой FromDate и ToDate принадлежит к тому же месяцу или нет. Пыль - это то, что я получил до сих пор.Проверьте условия выходного дня и месяца в SQL Server

CREATE PROCEDURE SavingsAccountsAllDetail 
(@FDate DATE=NULL, 
@TDate DATE=NULL) 

AS 
BEGIN 
    SET NOCOUNT ON; 

    DECLARE @FromDate DATE 
    DECLARE @ToDate DATE 

    SET @FromDate = isnull(@FDate) 
    SET @ToDate = isnull(@TDate) 

    IF month(@FromDate) != month(dateadd(day,-1,@FromDate)) 
    BEGIN 
    PRINT 'Not belongs to current month' 
    END 

Я хочу знать, подходит ли мой подход и как добавить проверку ToDate.

Я также хочу проверить, является ли FromDate/ToDate выходным или нет. Если это выходные, то PRINT «Выходные». Если вы не выполните оставшуюся часть процедуры. Я был бы очень признателен за поддержку.

ответ

2

Вы также можете проверить год. Но за то, что вы попросили. это способ.

IF month(@FromDate) != month(@ToDate) 
BEGIN 
     RETURN; --Not same month 
END 

проверка выходных

IF datepart(dw,@FromDate) IN (1,7) OR datepart(dw,@ToDate) IN (1,7) 
BEGIN 
     RETURN; --Weekend 
END 
+0

К сожалению текущего месяца я имел в виду, если From/To Даты принадлежит к тому же месяцу или нет, а не фактический месяц. –

+0

Yuh Я видел, большое спасибо за поддержку, но как обновить хранимую процедуру для проверки и валидации, и если условия не выполняются, продолжайте с остальными? –

+0

@DeEDEe: Просто скажите 'RETURN' внутри обоих блоков – DarkKnight

Смежные вопросы