我正在开发一个需要使用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
&amp;中生成这些日期。 Booking
表格I必须查看哪些日期被屏蔽或预订,因此仅显示可在接下来的90天内使用的日期。
我们假设EventCalender
有BlockDate
列&amp; Booking
表格还有BlockDate
列。
如果有人可以帮助生成一个sql查询,我将不胜感激,该查询将根据两个表中的阻塞日期生成可用日期并填充下拉列表。任何想法或指针都会很棒......
我找了这样的例子,但找不到多少帮助..
答案 0 :(得分:1)
由于您没有使用SQL生成可用日期,为什么要用它来修剪此列表?
只需加载阻止日期和事件日期,然后从列表中删除这些日期。
为了做你想做的事情,使用SQL,我希望你需要用可用的日期填充一个表,然后在这两个表上做一个外连接,只选择阻塞和事件表所在的行。空。
答案 1 :(得分:1)
以下是在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
)