我正在开发一个汽车租赁系统。表‘雇用’有像hireDate,returnDate等字段。我希望能够计算租金,并插入到数据库中的值自动(同一张表)。
我想知道是否可以将这两个日期字段相减,得到的值可以乘以某个数字(比方说300),然后自动添加到另一个名为'Rent_Due‘的属性中。这个想法是通过获得天数并将其乘以某个数字来计算到期的总房租。因此,对于每一次雇用,我只需输入雇用日期和返回日期,系统就会自动填充Rent Due属性。这有可能吗?
我不知道我需要提供更多的信息来寻求帮助,如果你可能需要我的ERD图像,请让我知道。谢谢!
发布于 2013-01-02 18:56:00
假设你想以天为单位计算差值,这应该是可行的。
INSERT INTO yourTable (hireDate, returnDate, Rent_Due) VALUES
(StartDate. EndDate, DATEDIFF(EndDate, StartDate)*300)发布于 2013-01-02 18:57:39
就我个人而言,我会避开数据库中的计算字段,并尽量保持它的规范化。
取而代之的是,您可以使用一个视图来查看租用的持续时间,从而确定价格。
示例如下:
create view hire_duration as (
select hireId, hireDate, datediff(returnDate,hireDate) as duration
from Hire
);(这假设您的Hire表中有一个名为hireId的主键)您可以通过将duration乘以某个常量来轻松地修改视图,使其也具有雇佣成本,如果成本永远不变,这将是可以的,但如果您希望灵活地使用不同的雇佣费率,则不希望在SQL中硬编码费率。
发布于 2013-01-02 19:00:47
您不需要创建另一个字段,您可以通过以下查询获得结果。
select (datediff(hireDate, returnDate)*300) as rent,hireDate,returnDate from Hire;https://stackoverflow.com/questions/14120700
复制相似问题