0

我有一列,用户可以在其中插入当月的天数。让我们称之为 DAY_OF_PERIOD 列,可以在其中插入数字 1-31。

例如,我想知道当插入数字 31 时会发生什么。但是这个月只有28天。28日开始查询时,数字29、30和31仍然需要出现在选择中(如果是一个月的最后一天)

当每个月的天数相同时,这将起作用:p DAY_OF_PERIOD=dayofmonth(sysdate)

有人对此有优雅的解决方案吗?

最好的问候

编辑:添加了更多信息

用户首先插入频率标志:每天、每周、每月。然后基于第一个标志 day_of_period 选项意味着不同的东西。1-7(每周)或 1-31(每月)。还有一些其他的调度信息。并且基于该信息,表格循环,例如,每小时。因此,当用户在其中输入 31(带有每月标志)时,我必须在每个月和第 31 天将其包含在查询中。

4

2 回答 2

1

使用日期选择器插入日期。

链接到可在 asp 和 html 中使用的 Javascript datepicker

你也可以使用 JQuery DatePicker。将日期头痛传递给日期组件。这始终是最好的解决方案。

于 2013-01-30T10:21:09.830 回答
0

如果您知道用户输入日期间的月/年,您可以使用该lastday()功能来确定它是否有效。

SELECT day(last_day('2013-01-20')

将返回 31。

SELECT day(last_day('2013-02-20')

将返回 28。

您可以在插入数据验证部分中使用上述内容在提交之前确认输入。

于 2013-01-30T10:14:01.357 回答