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

我想创建一个函数,在调用时填充或给出计算的 Fine。
假设在 IssueDate 的 15 天后,每天罚款 5。可能我可以将 IssueDate 作为参数发送给函数,然后使用 DATEDIFF(DAY,IssueDate,CAST(GETDATE() as date)) 计算 IssueDate 和 Current date 之间的差异,然后使用返回的天数来检查是否它们大于 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 回答