C# 在SQL中如何表示时间段?

C# 在SQL中如何表示时间段?,c#,sql-server,sql-server-2008,C#,Sql Server,Sql Server 2008,我正在使用ASP.NETMVC4和SQLServer2008 我有一项业务要求,要求设备在X个时间段后进行维修。不同的设备项目在维修前需要不同的时间长度 在数据库中,我需要存储设备需要维修的时间段,以及下一个维修日期 在设备编辑屏幕上,我需要一个带有选项的下拉框,允许用户选择服务间隔。实际上,最好不要有一个固定的时间下拉列表,但我不知道还有什么其他方法可以做到这一点 三个月 6个月 9个月 一年 1.5年 两年 三年 4年 五年 单击“已服务”按钮应将服务间隔添加到当前日期,并将其放入Nex

我正在使用ASP.NETMVC4和SQLServer2008

我有一项业务要求,要求设备在X个时间段后进行维修。不同的设备项目在维修前需要不同的时间长度

在数据库中,我需要存储设备需要维修的时间段,以及下一个维修日期

在设备编辑屏幕上,我需要一个带有选项的下拉框,允许用户选择服务间隔。实际上,最好不要有一个固定的时间下拉列表,但我不知道还有什么其他方法可以做到这一点

  • 三个月
  • 6个月
  • 9个月
  • 一年
  • 1.5年
  • 两年
  • 三年
  • 4年
  • 五年
单击“已服务”按钮应将服务间隔添加到当前日期,并将其放入NextServiceDue字段

存储这些信息的最佳方式是什么?有没有好的方式

谢谢,,
Mike

这取决于您想要的粒度级别,但是您可以在数据库中创建一个表,其中包含名称以及秒数或天数


从那里,当用户选择项目时,只需date
DateTime.Now.AddDays(userInput)
DateTime.Now.AddSeconds(用户输入)。您也可以将间隔期与可用项目一起存储。

这取决于,例如,3个月是指3乘以30天还是3个月,取决于从当前日期算起的月份长度。我不介意。最好的方法是什么?如果你不介意,只使用@joshuat给出的答案,这里可能不是很好的方法,但有几种危险的方法,例如在数据库中存储“3个月”,而不考虑用户需求在多年后发生变化的可能性。天、月和年的组合将提供灵活的解决方案。它允许您每X天、或每X天和Y月、或每X月等运行一次。如果您熟悉cron作业的定义,则类似于cron作业的定义。@Mike:这肯定也行。为了简单起见,我使用了一个小的(呃)间隔,在这个间隔中我的间隔会更容易实现。我想你是这样的,但我想我会添加额外的可能性,以防它们没有被考虑。顺便说一句,我是另一个迈克,如果你想知道为什么我没有接受你的答案:)哈哈,是的,我想出来了-你没有在评论中看到蓝色的特别行动。:)使用更精细的粒度(天、小时、分钟、秒等)的另一个优点是,您也可以使用一种方便的方法创建时间跨度:
TimeSpan.FromDays
等。。