0

私はSQLが初めてで、10進数型のSQLでフィルターを使用する方法を知っていますが、今回は文字列型で作業しています。

  • 「3 時間」または「180 分」を超えるものをフィルタリングする必要があります
  • 「3時間」を超えるものをフィルタリングすることができました
  • ただし、180 分を超えるものはフィルタリングできません

このテーブルの出力のスクリーンショットを次に示します。

ここに画像の説明を入力

ここにSQL selectステートメントがあり、それは機能しています

SELECT EVENTID,
       STARTDATETIME,
       F_NAME,
       DURATIONHM,
       NUM_PEOPLE

  FROM EVENT_FACT
  where DURATIONHM > '3 hrs'
4

1 に答える 1

1

思い通りにクエリを書くことはできません。期間を分単位で数値として保存し、次を使用する必要があります。

where duration >= 3*60

手間をかければ、文字列を解析して分を取得するビューを作成できます。一部のデータベースでは、そのような文字列を時間または間隔のデータ型に変換することもできます。

ただし、期間を文字列として保存することは、フィールドでのクエリ要件を満たしていないことがわかりました。(期間で並べ替えようとすると、同じことがわかります。)

于 2012-07-09T16:04:08.557 に答える