お世話になります、

SQL文で以下の質問をさせてください。

(1).条件に合う日付を取得する方法
 具体的には、2001/07/17~2001/08/17の間のものを全て取得する。

(2).(1)の応用で2001/08/17以前のものを全て取得する。

(3).(1)の応用で2001/07/17以降のものを全て取得する。

です。WHERE条件にどのように記述すればよいのか教えてください。よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

(1) WHERE hizuke BETWEEN TO_DATE('2001/07/17','YYYY/MM/DD) AND TO_DATE('2001/08/17','YYYY/MM/DD)



(2),(3)は応用ですし、下の方の書き方を参考にすればわかると思います。

明示的に指定しない場合は、暗黙の変換が行われます。
行われるルールについては、初期化パラメータなどに依存します。

詳しくはマニュアルSQLリファレンスの書式モデルとTO_DATE関数をご覧ください。
    • good
    • 0

データベースは何を用いてますか?


データベースによって若干日付型の表記方法が違う場合がありますし、条件と比較する対象のフィールドの型によっても違います。
フィールドの型が日付型なら、条件にたいして明示的に日付として指定してやらないと、OS(データベース)任せで変換させる事になり、期待通りの結果が得られない場合があります。(いわゆつ2001年問題とかです。2001年問題については詳しくは検索してください。)

この回答への補足

Oracle8.1.6です。フィールドはDate型です。

補足日時:2001/07/17 13:01
    • good
    • 0

すいません。


テーブル名でなく、フィールド名です。
    • good
    • 0

(1)


where テーブル名 Between '2001/07/17' AND '2001/08/17'
(2)
where テーブル名 < '2001/08/17'
(3)
where テーブル名 > '2001/07/17'

で、どうでしょ。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QACCESS ADO Whereで取得したデータのナンバーを取得する方法

お世話になります。

ACCESSで管理ソフトウェアを作成しているのですが、
ある配列変数 data(1 to 40)があり、
ADOでデータベースから Where句を使い、必要なデータを引き出し変数へ入れています。

引き出しているレコードの、レコードカウント数を変数に入れたいのですが、どうすればいいのでしょうか?

RecordCountでは引き出したレコードの最大数をとってしまうためできませんでした。

よろしくお願いします。

Aベストアンサー

単純に、カウンタ用の変数を用意すればよいのでは?
以下のような感じです。

Dim lngRecordCount as Long
lngRecordCount = 0

Do Until rs.EOF
  (必要なデータかどうか判定)
  If (必要なデータなら) Then
    lngRecordCount = lngRecordCount + 1
    data(lngRecordCount) = rs!XXXX
  End If
  rs.moveNext
Loop

Qwhere条件内のin句について

質問です。

where
code in(select code from list where ....)
------------------------------------------
といったwhere句がある場合ですが、
in句でヒットしている件数が5000件を超えているため
SQLを発行してもタイムアウトでエラーになります。
何か回避策はないでしょうか?
よろしくお願いします。

Aベストアンサー

1です
そうですか。通常サブクエリでのヒット件数が多い場合にはかなり有効な手法なのですが、合わなかったようですね。

単純にサブクエリが重いということはありませんか?
前者にしろ後者にしろ、サブクエリ内が全件走査を行うようではパフォーマンスの向上は見込めません。

サブクエリで得られるCODEの種類が多く、かつ1の例で
CODEに適切なインデックスが張ってある場合は、劇的なパフォーマンスの向上が見込まれます。

ご参考までに。

QAccessのWhere条件式について教えて下さい

Access始めたばかりです。
テーブルのデータを修正するフォームを作る際にWhere条件式に
="消費者コードは?" & [消費者コード]
と指定したところ、"このオブジェクトにはオートメーションオブジェクト"消費者コード"は含まれません。”というエラーメッセージが表示されました。
おそらく基本的なところで間違いがあると思うのですが、よくわからないので、
ご面倒だとは思いますがどなたか教えていただけませんでしょうか?

Aベストアンサー

「フォームを開く」マクロの「Where条件式」に提示の式を設定したと言うことでしょうか。

で、希望することは、マクロを実行すると、「パラメータの入力」ウィンドウが開き、標題に「消費者コードは?」と表示されていて、ユーザーが入力した値と一致する[消費者コード]のレコードをフォームに表示させたいということでしょうか。

上記の推測があっているとすると、、、
「フォームを開く」マクロの「Where条件式」に下記の式を設定してください。

[消費者コード]=[消費者コードは?]

この推測が違っているのなら、
どこに提示の式を設定して、
どのような動作を希望しているのか、
具体的に説明してください。

QDELETE文のWHERE条件にSUBSTRを使いたい 

DB2+eclipse2.1で開発しています。

テーブルのデータ削除に条件を付け加えたいのですが、
strSql = "DELETE FROM スキーマ名.テーブル名 WHERE substr(ABC,1,6) < " + "200404";
というように、SQL文を書くと、

------------------------------------
[IBM][CLI Driver][DB2/NT] SQL0440N 互換引き数を持つタイプ "FUNCTION" の名前 "SUBSTR" の許可ルーチンが見つかりませんでした。 SQLSTATE=42884
------------------------------------

上記エラーが出ます。
DB2でSUBSTRって使えると思うのですが。

ご存知の方いましたら、教えてください。
よろしくお願いします。

Aベストアンサー

SUBSTRで使っているABCは、カラムでしょうか?質問中のステートメントを見る限りそうだと思われますが、もし文字列定数だったらシングルクォーテーションが必要ですね。

DB2がどうかはあまり使った事がないので自信がないのですが、大抵のRDBMSは構文解析中に遭遇した解析不可能な点につき、人間の観点からすると相応しくないのではというようなエラーを返すので、100%信用しない方がいいかもしれません。

QSQLiteから制約条件の取得

SQLiteにある特定のテーブルから、各フィールドの制約条件またはCreate文を取得したい。
SQLで実現できないでしょうか?

Aベストアンサー

SQLiteのバージョンは、何ですか?

SQLite3以降であれば、sqlite_master表に「create table文」がそのまま入っていると思います。


人気Q&Aランキング

おすすめ情報