1

私はクラシック ASP を使用しており、次の VB スクリプト コードがあります。

From8to14 = date-14
To8to14 = date-8

これにより、2 つの変数が設定されます。

今日では、これは次のことを意味します。

From8to14 = "13/07/2012"
To8to14 = "19/07/2012"

次に、SQL サーバーへの選択クエリがあり、DateMatched 列がこれら 2 つの日付の間にある (および含む) レコードを検索したい

SQL を宣言するとき、SQL には 2 つの条件があります。

"AND INTRAY.DateMatched >= '"& Year(From8to14) &"-"& Month(From8to14) &"-"& Day(From8to14) &"' " & _
"AND INTRAY.DateMatched <= '"& Year(To8to14) &"-"& Month(To8to14) &"-"& Day(To8to14) &"' " & _

DateMatched 列には日付に加えて時刻も含まれているため、これは正しく機能していません。サーバーはこれらの日付をその日の開始時の真夜中にあると解釈していると思いますか?

したがって、レコードの DateMatched が「19/07/2012 17:41:22」の場合、そのレコードは含まれません。

どうすればこれを回避できますか?

4

2 に答える 2

1

変化する

To8to14 = date-8 

To8to14 = date-7

次に、-14日目の深夜から-7日目の深夜まで移動します。これには、-8日目すべてが含まれます。

または、本当に正確にしたい場合は、To8to14をそのままにして、末尾をに変更します。

... Day(To8to14) &" 23:59:59'

>=と<=の代わりにBETWEENを使用することもできます

于 2012-07-27T12:11:18.430 に答える
1

これを試して。

"AND INTRAY.DateMatched >= dateadd(day, datediff(day, 0, getdate())-14, 0)" & _
"AND INTRAY.DateMatched < dateadd(day, datediff(day, 0, getdate())-7, 0)" & _
于 2012-07-27T12:16:16.040 に答える