3

テーブル
tbl Admission に次のデータがあります: 日付と時刻は 2 つの異なるフィールドであり、dd/mm/yyyy形式で保存されます

AdmitDate          AdmitTime 
1/6/2012            00:00
3/6/2012            10:00
3/6/2012            19:00
4/6/2012            20:38
5/6/2012            21:00
7/6/2012            03:00

2012 年 3 月 6 日 07:00:00 から 2012 年 5 月 6 日 06:59:59 までのすべてのレコードを表示するクエリを作成したいと思います。

クエリには、ユーザーから「日付」を入力するオプションも必要です (日付と時刻のみが、1 日目の午前 7 時から 2 日目の午前 6 時 59 分までの固定間隔にすることができます)。たとえば、PARAMETERS を使用します。アクセス 2003 を使用しています。いくつかのクエリを試しましたが、完璧なクエリを実行できませんでした。正確な結果が得られません。誰か助けてください。

ありがとう、

よろしく、

4

2 に答える 2

3

列が1つしかない場合DATETIME、クエリの条件は簡単に作成できます。

WHERE AdmitDateTime >= '2012-06-03 07:00' 
  AND AdmitDateTime <  '2012-06-05 07:00' 

それはできませんし、Accessには独自の日付と時刻の関数があるので、これはうまくいくと思います。

WHERE DateValue(AdmitDate) + AdmitTime 
         >= DateValue([InputDate]) + TimeValue('07:00')
  AND DateValue(AdmitDate) + AdmitTime 
         <  DateValue([InputDate]) + 2 + TimeValue('07:00')

呼び出しは、DateValue()ユーザーによって渡された値またはAdmitDate列の一部が切り取られ、とのみ'07:00'AdmitTime使用されるようにするためにあります。

于 2012-06-23T22:59:17.153 に答える
0

オフィスの日付はすべて数字なので、次を追加できます。

SELECT [admitdate]+[admittime] AS Expr1
FROM dt
WHERE ((([admitdate]+[admittime]) 
  Between #6/3/2012 7:0:0# And #6/5/2012 6:59:59#));

上記はクエリ デザイン ウィンドウで機能しますが、VBA などの他の場所では、ロケールの問題が発生します。

再コメントを編集

Result
03/06/2012 10:00:00
03/06/2012 19:00:00
04/06/2012 20:38:00
于 2012-06-23T23:07:12.750 に答える