- ベストアンサー
日付の比較
pussyfootの回答
(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関数をご覧ください。
関連するQ&A
- 10gでの日付比較について教えてください。
PL/SQLを8iで実行し、データ抽出できていたものが、10gで実行すると抽出できなくなりました。 処理の内容は、PL/SQL実行時に日付を引数として渡し、データ抽出する表の日付と比較するようにしています。 引数の値はCHAR(YYYY/MM/DD)で渡す為、表の日付(DATE型)をCHARに変換して比較しています。 記述は以下の通りです。(一部記載) WHEREの条件pDT_DATEを'2006/03/31'のように固定値で記述すると8iで実行した結果と同じデータが抽出できます。 回避方法のご指導をお願いします。 CREATE OR REPLACE PROCEDURE CMA010PB ( pDT_DATE IN VARCHAR2 --基準日 ) <中略> --CURSOR データ抽出 CURSOR cTRHKCursor IS SELECT TT.cd_cust AS cd_cust --顧客コード FROM t_torihiki_rireki TT --取引履歴 WHERE NVL(TO_CHAR(TT.dt_denp,'YYYY/MM/DD'),'0000/00/00') <= pDT_DATE; BEGIN FOR rTRHKCursor IN cTRHKCursor LOOP <以下省略>
- ベストアンサー
- Oracle
- 日付型のデータを検索条件
DATE型でINSERTした日付データが検索条件として効きません。 検索フォームに入力した日付に関係なく全てのレコードが出てしまいます。 以下、原因につきご教示いだけると幸いです、 ◆検索フォームは、以下の通りです。 <html><body> <form method="post" action="list.php"> <input type="text" name="date_more">以降 <input type="text" name="date_less">以前 </form> </body></html> ◆PHPは、日付欄に2005-06-01のように値が入力された場合のみ SQLに追加するようにしています。 //試験日 (値が入力されている場合のみSQL文に追加) if (strlen($date_more) > 0) { $sql .= " and (testdate >= $date_more)"; } if (strlen($testdate_less) > 0) { $sql .= " and (testdate <= $date_less)"; } ◆ $sqlをprintすると select * from mytable where (memo like '%%') and (testdate >= 2005-06-01) のように、SQL文はきちんと発行されているように思います。 よろしくお願い致します。
- ベストアンサー
- PHP
- 最新の日付と2番目の日付のデータ取得方法
SQL Server 2008 にて下記条件を満たしたデータの取得を行いたいです。 ・IDごとに、日付がある日以前で最新のものとその次の日付のデータ2件 ・ただし、その2件で価格が変わらなければ価格変動のあった日付のデータまでさかのぼる ・価格が同じデータの場合、古い日付のデータを取得 例: ・条件…日付が20040101以前 <検索対象データ> ID 日付 価格 ------------------------ 1 20000101 100 1 20010201 100 1 20020301 200 2 20020401 300 2 20000501 400 2 20010601 400 2 20030701 300 3 20000801 500 3 20010901 600 3 20040901 600 <取得したい結果> ID 日付 価格 ------------------------ 1 20020301 200 1 20000101 100 2 20020401 300 2 20000501 400 3 20010901 600 3 20000801 500 なるべく少ないSelect文で取得したいと考えております。 よろしくお願いします。
- 締切済み
- SQL Server
- 日付/時刻型のフィールドに対してWhere条件を付ける方法
VBAで開発しています。 Where句で、日付/時刻型のA_dateに対して WHERE A_date > 2008/05/01 といったような条件を付けたいのですが、 どうしてもうまくいきません。 WHERE A_date > Format(2008/05/01, "YYYY/MM/DD") のようにフォーマットしてみてもだめでした。 WHERE A_date > date() のような記述はちゃんと通るんですが、固有の日付とのSQLがうまくいきません。 日付/時刻型の条件付けは何か特別な記述が必要なのでしょうか? どなたかご回答よろしくお願い致します。
- 締切済み
- SQL Server
- SQLで日付を条件に削除したい
SQLで日付を条件に削除したい update の列にdatetime 型で更新日が入っています。 2010年の6月以降を削除したいのですが どうにもうまくいきません。(一応以下のようなことをやってみたりしました) どのように書いたらいいでしょうか?? DELETE FROM SYS WHERE update >#2010/06#
- ベストアンサー
- SQL Server
- oracle 最新日付との比較
いま、同一商品番号の最新日付を利用した条件が うまく作れず悩みながら色々試していますが、 うまくいきません。 やりたいことは、 1,AテーブルとBテーブルの 商品番号が同じ場合は除外します。 2,残されたデータから次はCテーブルの中にある 同一商品番号で、最新の日付が当月の場合はデータを残す。 つまり、前月以前のデータは除外となります。 1まではできています。 Select * from aテーブル where not exists (select 'X' from bテーブル where a.商品番号 = b.商品番号) この先上記sqlにつなげてmax関数くくった最新日付と システム日付を年月のみで比較する等試みましたが、 求めた結果になりません。 上記sqlでビューを作成してといったことは、 今回やらずに一つのsqlのみでできないかと 試行錯誤です。 よきアドバイスございましたら、 宜しくお願い致します。
- ベストアンサー
- Oracle
- 日付を表示形式で戻すSQL文を書きたい
2つの日付を与えてその2つの日付の間の日付を以下のような表形式で返すSQL文を作りたい。 可能でしょうか? 例えば、与える日付を以下の2つとして、 2012/01/05,2012/01/11 SQL文の実行結果は、 カラム名 2012/01/05 2012/01/06 2012/01/07 2012/01/08 2012/01/09 2012/01/10 2012/01/11 今回の例では、2012/01/05~2012/01/11までの7日間なので7件が返された。
- ベストアンサー
- Oracle
- SQLの構文で質問です。
いつもお世話になっております。 SQLの構文で質問です。 テーブルを開いて、データの中から日付を絞って抽出したいのですが、 whereの後にどのような記述をすればいいのかわかりません。 なんとなく『>』を使ってやってみましたがうまく抽出できませんでした。 例えば、2008/12/01~2008/12/31の絞りで抽出できるようにしたいのですが。 SELECT * FROM 日付 WHERE (日付 2008 / 12 / 01 2008 / 12 / 31) すみません、SQLを使い始めて間もなく本を見てはいるのですがうまくいかないもので。 宜しくお願いします。
- ベストアンサー
- Windows XP
- SQLの日付と、DBの日付項目に対する比較について
よろしくお願いします。 以下のように、DBには年月日がCHARの8桁で格納されています。 20050125 20050126 20050127 20050128 20050130 20030201 20030202 この項目に対し、システム日付から過去一週間以内の 日付を取得したいのですが、文字型とSQLのDATE型の 比較はどのようにすればよろしいのでしょうか? よろしくお願いします。
- ベストアンサー
- Oracle