0

私は webform $ c# を使用して asp.net アプリケーションに変換する必要があるプロジェクトに取り組んでいます。

以下は、カレンダーに基づいて現在の日付から次の 90 日間の日付を生成する jQuery の作業スクリプトです。

これは、ブロックされた日付などを検索しない単純なスクリプトです。

また、月曜日から金曜日までの平日の日付のみを表示します。

$(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ここで、2 つの異なるテーブルとテーブルからこれらの日付を生成する必要Bookingがあります。どの日付がブロックまたは予約されているかを確認し、それに応じて次の 90 日間利用可能な日付のみを表示する必要があります。

列とテーブルにも列EventCalenderがあると仮定しましょう。BlockDateBookingBlockDate

2 つのテーブルでブロックされた日付に基づいて利用可能な日付を生成し、ドロップダウンに入力する SQL クエリを生成するのに役立つ人がいると幸いです。どんなアイデアや指針も素晴らしいでしょう....

私はそのような例を探しましたが、多くの助けを見つけることができませんでした..

4

2 に答える 2

1

SQLを使用して使用可能な日付を生成していないのに、なぜSQLを使用してこのリストを整理するのでしょうか。

ブロックされた日付とイベントの日付をロードし、これらの日付をリストから削除するだけです。

SQLを使用して目的の処理を行うには、テーブルに使用可能な日付を入力してから、これらの他の2つのテーブルで外部結合を実行し、ブロックされたテーブルとイベントテーブルがnullである行のみを選択する必要があると思います。

于 2012-05-29T13:07:06.453 に答える
1

SQL で日付を生成する 1 つの方法を次に示します。

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
)
于 2012-05-29T13:15:18.630 に答える