【问题标题】:How to automatically calculate/update a due date in a maintenance table如何自动计算/更新维护表中的到期日
【发布时间】:2018-12-22 00:29:50
【问题描述】:

我有一个维护表,其中存储维护合同的开始日期、频率和频率单位(即年、月、日)。 旧到期日过后,如何自动计算维护合同的下一个到期日?

这是针对我使用 c# 在 asp.net 中构建的预防性维护应用程序。所以我需要在我设置的表格中订购截止日期。我想通过 C# 还是 SQL 存储过程来做到这一点?

我不知道从哪里开始,所以对正确方向的任何努力表示赞赏,我为我缺乏代码而道歉。提前致谢!

【问题讨论】:

  • 什么类型的SQL?
  • 也许只是一个简单的 SQL 作业来检查日期并在需要时更新它们。
  • 或编辑您的表以具有一组 NextDueDate 列,当旧的到期时,使用新的,直到作业可以用新的到期日期更新旧的到期日期,然后计算下一个。取决于您需要多久运行一次作业。下班后运行作业并更新第二天的日期可能会更好。除非你是 24 小时营业的。
  • 我认为您可以使用视图中的计算列来做到这一点。
  • @Shawn 我很确定这是 mySQL 语法

标签: c# sql asp.net


【解决方案1】:

如果您使用 SQL Server you could create a recurring job 更新 NextDueDate 列。或者在您各自的 SQL 数据库中查找类似的内容。否则,您可以在 C# 中创建一个执行相同操作的简单服务。

我想知道是否最好有两张表,一张用于Contracts,一张用于Bills,具有一对多的关系。因此,如果创建了为期 1 年、每月付款 12 次的合同,您将生成 1 个Contract 行和 12 个Bill 行,并为Bills 表创建一个名为IsPaid 的布尔列。这样您就可以跟踪每一个预期的服务或账单。

然后,您可以有一个视图,其中包含包含 Contract 数据的列,以及一个计算的 NextDueDate 列,该列获取按日期排序的各个账单的计算,比当前日期大一。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-13
    • 1970-01-01
    • 2014-06-05
    • 1970-01-01
    • 2018-03-21
    • 2021-06-22
    • 2021-12-04
    • 1970-01-01
    相关资源
    最近更新 更多