【发布时间】:2016-09-06 13:01:24
【问题描述】:
我是一名初级程序员,刚刚起步。我被赋予了一项任务,以确定事件(每年都会一遍又一遍地发生)当前是否正在发生。这些事件以月/日开始日期到月/日结束日期的格式存储在数据库中,但没有年份。更复杂的是,这些事件不跨越通常的日历年,它们发生在一年的 7 月 1 日至次年的 6 月 30 日之间的财政年度。似乎没有年份就没有 DateTime 对象,我真的不想使用任意年份的方法,因为我认为从长远来看这不会奏效。据我了解,这是我们项目将越来越多的新事物,根据一年中的月份和日期显示信息(或不显示信息)。给定当前日期,以及我以月/日格式知道开始日期和结束日期的事件,我如何判断该事件当前是否正在发生?请记住,这可能跨越日历年的变化。如果我可以将此功能构建到一个 linq 查询中,这样我什至不用费心从数据库中提取我不关心的事件,那将是非常棒的,但我会尽我所能让它工作。我们使用的语言是 C#。谢谢
对不起,我的帖子结构,我没有太多使用堆栈溢出 数据库中的数据结构有点像这样:
StartDate | EndDate
-------------|----------
3/21 | 4/15
4/25 | 5/6
11/30 | 3/7
是的,它存储为 varchar。
【问题讨论】:
-
您是否只需要了解某个事件当前是否正在发生?数据库中的类型只是 varchar 吗? (如果你可以有四个
int字段,StartMonth、StartDay、EndMonth、EndDay 那就更好了。) -
另外,您当前的问题真的很难阅读,因为只是一堵文字墙。如果您对其进行结构化以使其更易于阅读以及提供示例数据等,那将非常有帮助。
-
抱歉我的帖子的结构,我没有太多使用堆栈溢出数据库中的数据结构有点像这样:StartDate |结束日期 3/21 | 4/15 4/25 | 5/6 11/30 | 3/7 是的,它存储为 varchar。
-
请编辑问题以反映这一点,并使其更易于理解。你能改变数据库模式吗?很难使用作为文本卡在一起的数据......
-
我想我可以更改数据库架构,因为我是新手,我不会做太多这类事情,但如果我真的明白为什么,我也许可以做到。