根据两个不同表中的阻止日期生成接下来 3 个月的可用日期
本文关键字:日期 接下来 两个 | 更新日期: 2023-09-27 18:35:49
我正在处理一个需要使用webform $ c#转换为 asp.net 应用程序的项目。
下面是 jQuery 中的一个工作脚本,它根据日历从当前日期生成下一个 90 天的日期。
这是一个简单的脚本,它不会查找阻止的日期等。
它还仅显示工作日的日期,即周一至周五。
$(function(){
function pad(n){return n<10 ? '0'+n : n}
var date = new Date();
var selectElement = $('<select name="dddDate" class="ddDate" >'), optionElement;
for (var count =0; count < 91; count++){
var day = date.getUTCDay();
if (day == 0 || day == 1 || day == 2 || day == 3 || day == 4 || day == 5) {
formattedDate = pad(date.getUTCDate()) + '-' + pad(date.getUTCMonth()+1) + '-' + date.getUTCFullYear();
optionElement = $('<option>')
optionElement.attr('value',formattedDate);
optionElement.text(formattedDate);
selectElement.append(optionElement);
}
date.setDate(date.getDate() +1);
}
$('#ddDate').append(selectElement);
});
这很容易。现在我必须从两个不同的表EventCalender
和Booking
表中生成这些日期,我必须查看哪些日期被阻止或预订,并相应地仅显示未来 90 天内可用的日期。
让我们假设EventCalender
有BlockDate
列Booking
表也有BlockDate
列。
如果有些人可以帮助生成一个sql查询,我将不胜感激,该查询将根据两个表中的阻止日期生成可用日期并填充下拉列表。任何想法或指针都会很棒....
我寻找这样的例子,但找不到太多帮助..
既然您没有使用 SQL 来生成可用日期,那么为什么要使用它来修剪此列表呢?
只需加载阻止日期和事件日期,然后从列表中删除这些日期即可。
为了使用 SQL 执行您想要的操作,我希望您需要使用可用日期填充表,然后在其他两个表上进行外部联接,并且仅选择阻塞表和事件表为空的行。
这是在SQL中生成日期的一种方法。
我假设您在阻止日期列中使用date
数据类型。
declare @date date = getdate()
;with dates(d)
as
(
select @date
union all
select DATEADD(day, 1, d)
from dates
where d < DATEADD(day, 89, @date)
)
select *
from dates
except
(
select blockedDate
from table1
union all
select blockedDate
from table2
)