вопрос сравнения дат - PullRequest
       2

вопрос сравнения дат

1 голос
/ 30 апреля 2019

То, что я пытаюсь сделать, это то, что если пользователь A заработал в 2019/04/29 году, пользователь A не сможет включить его в течение этой даты до завтра или послезавтра.

Так что в основном этот оператор SQL работает, но он не покажет пользователю A никакой ошибки и вставит двойную запись.

     IF EXISTS(select createddate from clockin  where username = @Username and eventname = @b
group by createddate
HAVING COUNT(createddate) = 2
)

Это тоже не работает, не позволяет вставлять какие-либо другие даты, потому что 29/04 существовало, оно не позволяло входить 30/04. HAVING COUNT(createddate) = 1

Я хочу отобразить сообщение об ошибке, если пользователь попытается дважды войти в систему 2019/04/29 и разрешить ему включить другие даты.

логика

if (user and createddate doesn't exist)
{
allow clock in
}

else if user and createddate exists) 
{
deny clock in, show an error message.
}

else if (user exists but createddate doesn't match any of the dates) -- to allow user to clock in on other days
{
allow clock in
}

Я застрял на том, как это сделать.

1 Ответ

1 голос
/ 30 апреля 2019

Проверьте следующий скрипт. Это должно сервер вашей цели-

IF NOT EXISTS(
    SELECT * FROM clockin 
    WHERE CONVERT(VARCHAR, createddate, 101) = CONVERT(VARCHAR, GETDATE(), 101)
    AND username = @Username 
    AND eventname = @b
)
BEGIN
    --You can perform your Clocked steps here
    PRINT 'Not  Clocked Today'
END

ELSE
    PRINT 'Already Clocked Today'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...