在创建表

时间:2016-11-08 14:49:36

标签: mysql sql oracle

所以我想为库创建一个表,如下所示:

项目

ID Name StartDate ReturnDate Fee
-- ---- --------- ---------- ---
5  Book 5-5-2016   7-5-2016   2
-- ---- --------- ---------- ---

所以上面的意思是从5月5日到5月7日借了一本ID为5的书。 每次添加新行时,费用列应自动计算并插入,每天之间每天收取1美元的费用。

你是怎么做到的? 在插入其余数据时,如何使SQL在创建元组时进行此计算(费用应自动更新)?

2 个答案:

答案 0 :(得分:0)

假设您的日期列具有日期类型

在Mysql中你可以使用date_diff

SELECT ID, Name, StartDate, ReturnDate, DATEDIFF(ReturnDate,StartDate) AS Fee
from your_table 

对于oracle简单地减去日期

SELECT ID, Name, StartDate, ReturnDate, 
ReturnDate - StartDate  Fee
from your_table 

答案 1 :(得分:0)

您最好先创建表格,然后更新费用列

DDL应该是

create table library (id bigint not null, name varchar(100),startDate date, returnDate date, fee int);

更新sql是

update library set fee=DATEDIFF(ReturnDate,StartDate);