SQL数据库中的难题!求各位大虾帮帮忙

来源:百度知道 编辑:UC知道 时间:2024/05/14 22:46:48
SQL数据库设计,我要实现日期相减,怎么做呢? 例如:一个表中有“借书日期”、“还书日期”,另一个表中有“罚款金额”这些字段。我是想用“借书日期”-“还书日期”然后看它有没有超过30天,如果没超过则不用罚款;如果超过则用超过部份*0.1元,然后把这罚款放在另一个表中的“罚款金额”字段!各位大虾,有谁知道实现这功能的SQL角本是怎么写的,帮帮忙,本人不胜感激!

这个问题问得好。。

假设你的两张表为Table1和Table2
Table1中有
BookID[书的编号],varchar(20)
BeginTime[借书日期],datetime
EndTime[还书日期],datetime
这几列.
Table2中有
Fine[罚款],money
此列.
如果针对编号为:001 的一本书.
可以这样写.

/*声明一个变量保存借书时间*/
DECLARE @btime DATETIME
SELECT @btime=BeginTime FROM Table1 WHERE BookID='001'
/*声明一个变量保存还书时间*/
DECLARE @etime DATETIME
SELECT @etime=EndTime FROM Table1 WHERE BookID='001'
/*声明一个变量保存时间差*/
DECLARE @a INT
SELECT @a=DATEDIFF(dd,btime,etime)
/*判断是否超过30天*/
IF(@a>30)
BEGIN
/*声明一个变量保存罚款*/
DECLARE @b MONEY
SET @b=(@a*0.1)
/*将罚款存入第二张表中*/
INSERT INTO Table1(Fine) VALUES (@b)
END
ELSE
BEGIN
PRINT'未超出时间限制'
END

郁闷...好久没玩查询分析器了.....
呵呵...我试过了..没问题.