2011-06-21 10 views
1

MS Accessで時間値をグループ化しようとしています。 switch文がありますが、構文が無効であると言います。なぜ私は分からない。SQLで時間値をグループ化する

Switch(
     [Time]<#7:00 AM#, 
      "Before 7:00 AM", 
     [Time] >= #7:00 AM# And [Time]<= #10:00 AM#, 
      "Morning", 
     [Time] >#10:00 AM# And [Time]<=#5:00 PM#, 
      "Late morning through Afternoon", 
     [Time]> #5:00 PM# And [Time]<=#10:00 PM#, 
      "Evening", 
     [Time] > #10:00 PM#, 
      "After 10:00 PM' 
) AS Time_of_Day 

値はこのように、入力マスクを通して短時間に格納されています:

00:00 

私は長い時間を含めるように上記のswitch文を編集しようとしましたが、それはまだありません作業。誰かが上記のswitch文が間違っているかどうか、そしてこれがAccess/SQLの時間値をグループ化する良い方法かどうかを教えてください。

ありがとうございました

+2

さておき、しかし、あなたの「スイッチ」のコードで、あなたがチェックする必要はありません。低い値。すなわち、第2の条件の場合、「時間」は決して7am *(第1の条件によって捕らえられたもの)未満であってはならない。 3番目の条件は、10amなどと等しい(またはそれに等しい)ことはありません。 –

+1

時間を「短時間」の形式で保存していません。 Jet/ACEデータベースのすべての日付/時刻値は、8バイトの浮動小数点数として格納されます。整数部分は曜日を表し、1899年12月30日以降は0を返します。小数部分は時刻を表します。その値のテキスト表現は決して格納されません - それは完全にプレゼンテーションの問題です(通常の浮動小数点エラーの影響を受けやすい10進表記よりも優れた値を表すため、いくつかの計算でそれらを使用する必要があります)。 –

+0

@ Fenton - Short TimeはAccessでどのように言及されているのか、私はこれを作っているだけではありません。私はちょうど私のコードに誤りがありました(私が以下に受け入れた答えを見てください)。しかし、データが実際にどのように格納されているのかを訂正してくれてありがとう、今度は明日の仕事で皆を退屈させることができます – jerry

答えて

5

これは正確なコードですか?あなたが不一致の引用を持っている場合、それはあなたのsytaxエラーを生成できます。

"After 10:00 PM' 

は次のようになります。

ちょうど
"After 10:00 PM" 
+0

私は恥ずかしいです、ありがとうございます。 – jerry

+1

それは私たちすべてに起こります。次の時間にあなたのコードを書いてください(4スペース)。それは私がそれを見た唯一の理由です。 – Nix

+0

私は、ありがとう。 – jerry

関連する問題