0
table IssuedBooks
{
column RollNo,BookNo,BookName,AuthorName,IssueDate,Fine
}

呼び出されたときに計算された Fine を満たすか、または与える関数を作成したいと思います。
IssueDate の 15 日後に、毎日 5 の罰金があるとします。IssueDate をパラメーターとして関数に送信し、DATEDIFF(DAY,IssueDate,CAST(GETDATE() as date)) を使用して IssueDate と現在の日付の差を計算し、返された日数を使用して、それらは 15 を超えており、それに応じて罰金を計算し、関数を通じて返します。
実装方法、クエリなどについて非常に混乱しています。助けてください。
事前にどうもありがとうございました..

4

1 に答える 1

0
SELECT
RollNo, BookNo, BookName, AuthorName, IssueDate,
CASE
WHEN DATEDIFF(Day,IssueDate,cast(getdate() as date)) > 15
THEN (DATEDIFF(Day,IssueDate,cast(getdate() as date)) - 15) * 5
ELSE '0'
END as Fine
From IssuedBooks

あるいは単に:

UPDATE IssuedBooks
SET Fine = (DATEDIFF(Day,IssueDate,cast(getdate() as date)) - 15) * 5
WHERE DATEDIFF(Day,IssueDate,cast(getdate() as date)) > 15
于 2013-07-29T19:08:30.797 に答える