首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql在减法后自动插入值

Mysql在减法后自动插入值
EN

Stack Overflow用户
提问于 2013-01-02 18:48:12
回答 4查看 137关注 0票数 0

我正在开发一个汽车租赁系统。表‘雇用’有像hireDatereturnDate等字段。我希望能够计算租金,并插入到数据库中的值自动(同一张表)。

我想知道是否可以将这两个日期字段相减,得到的值可以乘以某个数字(比方说300),然后自动添加到另一个名为'Rent_Due‘的属性中。这个想法是通过获得天数并将其乘以某个数字来计算到期的总房租。因此,对于每一次雇用,我只需输入雇用日期和返回日期,系统就会自动填充Rent Due属性。这有可能吗?

我不知道我需要提供更多的信息来寻求帮助,如果你可能需要我的ERD图像,请让我知道。谢谢!

EN

回答 4

Stack Overflow用户

发布于 2013-01-02 18:56:00

假设你想以天为单位计算差值,这应该是可行的。

代码语言:javascript
复制
INSERT INTO yourTable (hireDate, returnDate, Rent_Due) VALUES
(StartDate. EndDate, DATEDIFF(EndDate, StartDate)*300)
票数 1
EN

Stack Overflow用户

发布于 2013-01-02 18:57:39

就我个人而言,我会避开数据库中的计算字段,并尽量保持它的规范化。

取而代之的是,您可以使用一个视图来查看租用的持续时间,从而确定价格。

示例如下:

代码语言:javascript
复制
create view hire_duration as (
  select hireId, hireDate, datediff(returnDate,hireDate) as duration
  from Hire
);

(这假设您的Hire表中有一个名为hireId的主键)您可以通过将duration乘以某个常量来轻松地修改视图,使其也具有雇佣成本,如果成本永远不变,这将是可以的,但如果您希望灵活地使用不同的雇佣费率,则不希望在SQL中硬编码费率。

票数 0
EN

Stack Overflow用户

发布于 2013-01-02 19:00:47

您不需要创建另一个字段,您可以通过以下查询获得结果。

代码语言:javascript
复制
select (datediff(hireDate, returnDate)*300) as rent,hireDate,returnDate from Hire;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14120700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档