SQL月份超过一个月的24/28天

时间:2013-01-30 10:10:02

标签: sql vertica

我有一个列,用户可以在其中插入当月的天数。让我们调用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天将其包含在查询中。

2 个答案:

答案 0 :(得分:1)

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

Link to Javascript datepicker which can be used in asp and html

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

答案 1 :(得分:0)

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

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

将返回31。

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

将返回28。

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