• 締切済み

Oracle to_dateのyyyy/mm/dd

to_dateを以下のように使用した場合、正確なdate値(2011年2月1日)を取得できるのでしょうか。 select to_date('2011/2/01','yyyy/mm/dd') from dual; 自分で検証できる環境が無い(コマンドが叩けない)ので質問させていただきました。 (できればoracle8i環境で分かると助かります。) よろしくおねがいいたします。

  • Oracle
  • 回答数3
  • ありがとう数4

みんなの回答

  • a_ka_
  • ベストアンサー率16% (1/6)
回答No.3

あぁ。。。すみません。 'True'と'False'の記載が反対、もしくは B - A の記載、でした。

  • a_ka_
  • ベストアンサー率16% (1/6)
回答No.2

おはようございます。 >select date型(2011/01/31 00:00:00) < to_date('2011/2/01','yyyy/mm/dd') from dual についてですがこのSQLは実行できません。 実際に流したSQLは下記の通り == select to_date('2011/01/31','yyyy/mm/dd') < to_date('2011/02/01','yyyy/mm/dd') from dual; 行1でエラーが発生しました。: ORA-00923: FROMキーワードが指定の位置にありません。 == 条件を戻り値(結果)に入れられてもどうしたらいいか分からないといったところでしょうか。 SQLを考えるときにどういう答えが欲しいかを提示してあげないといけないかと思います。 たとえば・・・ SELECT A, B, CASE WHEN A - B >= 0 THEN 'True' WHEN A - B < 0 THEN 'False' END AS 判定 FROM ( SELECT TO_DATE('2011/01/31','yyyy/mm/dd') AS A, TO_DATE('2011/02/01','yyyy/mm/dd') AS B FROM DUAL ) ; A     B     判定 ___________________ 2011/01/31 2011/02/01 False 上記のような結果が返ってきます。 あまり上手なSQLの書き方ではないのですが回答になっていますでしょうか?

  • nora1962
  • ベストアンサー率60% (431/717)
回答No.1

可能です。 テーブル T ( dt date ) がある時 INSERT INTO T SELECT select to_date('2011/2/01','yyyy/mm/dd') from dual; は正常終了し、フィールドには「2011/2/01 00:00:00,」が格納されます。

papaya20111
質問者

お礼

ご教授ありがとうございました。 ちなみに、下記SQLでは真が返るのでしょうか。 select date型(2011/01/31 00:00:00) < to_date('2011/2/01','yyyy/mm/dd') from dual; 何分中途半端な知識で的外れな質問をしているかもしれませんが、ご回答頂けたら幸いです。 よろしくお願いいたします。

関連するQ&A

  • SQLコマンドの「TO_DATE」について

    SQLコマンドで、下記を実行すると「2014/04/03」などが取得できると思ったのですが、 「14/04/03」で取得してしまいます。 (aaa_dateは、DATE型で、「2014/04/03」などが入ってます) select TO_DATE(aaa_date,'YYYY/MM/DD') from AAA_TBL YYYYをYYにして、下記を実行すると、なぜか、「2014/04/03」と正常に取得します。 select TO_DATE(aaa_date,'YY/MM/DD') from AAA_TBL 逆の気がするのですが、なぜでしょうか。

  • TO_DATE関数について

    TO_DATE関数を使用して文字を日付型に変換して表示させようと打っているのですが、エラーが出て困っています。 どこが間違っているのでしょうか? 回答のほど宜しくお願いいたします。 1 select to_date('1/OCT/2004', 'DD/MON/YYYY') 2* from dual SQL> / select to_date('1/OCT/2004', 'DD/MON/YYYY') * 行1でエラーが発生しました。: ORA-01843: 指定した月が無効です。

  • DataGridViewでyyyy/MM/dd

    SQLServer2008で作ったデータベースをVB2010のDataGridViewで表示させております。 DataGridViewで日付列を"yyyy/MM/dd"のスラッシュ入り10桁で表示させたいのですが表示されません。 データベース側でのデータ型は「date」となっております。 DataGridView1.Columns("日付").DefaultCellStyle.Format = "yyyy/MM/dd" こう記述すればいいと思ったのですが、「20111227」とスラッシュ無しで表示されてしまいます。 DataGridView1.Columns("日付").DefaultCellStyle.Format = "yyyy年MM月dd日" これは「2011年12月27日」と表示することを確認できました。 DataGridView1.Columns("日付").DefaultCellStyle.Format = "yyyy-MM-dd" これは「2011-12-27」と表示することを確認できました。 どのようにしたら"yyyy/MM/dd"形式で表示させることが出来るのでしょうか 指導のほど、よろしくお願い致します。

  • Oracleで、DATE型カラムについて

    Oracle9iで、テーブルを作成しました。 各テーブルには、DATE型のカラムがあります。 テーブル内:2004-04-17 01:15:00 と、入っているとき SELECT TO_CHAR(日付,'yyyy/mm/dd hh24:mi') FROM テーブル という風にアクセスしました。 しかし、 あるテーブルでは、 4/04/17 省略形になったり、 はたまた、あるテーブルでは、 2004/04/17 00:00 と時分が0になってしまったり。 なぜ、上のように、フォーマットを指定しているのにもかかわらず、おかしくなってしまうのかわかりません。 わかる方、お教えください。

  • アクセス 数値+日付をyyyy/mm/dd(aaa

    テーブルに 20121201aaa 20121203bbb と言うデータがあるのですが これをクエリで あ2012/12/01(土) あ2012/12/03(月) に変えるにはどうすればいいでしょうか 数値の後ろの文字はいろんなパターンがあるので置換じゃ追いつきません。 SELECT Format(Left([テーブル1]![test],8),"yyyy/mm/dd(aaa)") AS 日 FROM テーブル1; にすると#エラーになってしまいます。 SELECT Format(CDate(Left([テーブル1]![test],8)),"yyyy/mm/dd(aaa)") AS 日 FROM テーブル1; これでもダメでした・・・

  • yyyy/mm/ddからyyyy/mmへの変換

    いつもお世話になっております. Excelの第3列の2行目~2027行目までのセルに yyyy/mm/dd と入力されています. dd (日付)を取り除き,yyyy/mm という入力に直したいのですが,方法が分からずに困っております. Sub test() Dim row As Integer For row = 2 To 2027    Sheets("Sheet1").Cells(row, 3).NumberFormat = "yyyy/mm" Next End Sub 上記のようにしてみたのですが,セルの表示形式が変わっただけで, 数式バーの表示を見てみると実質的に dd が残っています. 良い方法をご存知の方がいらっしゃいましたら, ご教示の程どうぞ宜しくお願いいたします.

  • DATE型カラムのインデックスが効かない

    Oracle初心者です。 以下のような2種類のSQLをSQLPLUSで実行し、 実行計画を取得しました。 end_timeでfilterをかける際に、"TABLE ACCESS FULL"となっており、貼っているインデックスが使われていないことがわかりました。 #これがSQLの遅い主要因と考えています。。。。勘です。 インデックスが活用されていない原因としてはどのようなものが考えられるのでしょうか。 宜しくお願いいたします。 1) set autotrace traceonly select * from t_sample where end_time >= '2009-08-25' and end_time <= '2009-11-26' 2) set autotrace traceonly select * from t_sample where end_time >= to_date('2009-08-25', 'yyyy-mm-dd') and end_time <= to_date('2009-11-26', 'yyyy-mm-dd')

  • yyyy/M/dをyyyy/MM/ddに変換

    SQLServer 2005にて文字列型に入っている日付データの変換を行いたいと思っています。 現状yyyy/M/d(2010/1/1)のようになっているのをyyyy/MM/dd(2010/01/01)に変換したい のですが方法が分かりません。 SELECT CONVERT(DATETIME,(CONVERT(VARCHAR(10),テーブルの値)),120) FROM テーブル名 とするとCHAR データ型から DATETIME データ型への変換の結果が日付/時刻の値の範囲外です。 というエラーになっていまいます。どういった方法なら実現できるのでしょうか。 すみませんがご教授ください。 宜しくお願い致します。

  • オラクルのDATE型について

    オラクルのDATE型について教えて下さい。 以前の質問にも同じような質問があったのですが、内容を少し違うようなので 質問させていただきます。 オラクルの8.1.6のデータベースにおいて "A" テーブルの中の "B" 項目をdate型にしました. AテーブルのB項目のデータが現在は "YY/MM/DD"形式で格納されていますが、それを "YYYY/MM/DD"形式で格納したいのですが、どのようにすれば良いでしょうか? やはり、テーブルを再度作りなおさないと行けないのでしょうか? ちなみに開発環境はOracle8.1.6 オブジェクトブラウザ-を使用しています。 宜しくお願い致します。

  • 「今日の日付を含む」と言う条件のクエリ(yyyy/mm/dd hh:mm形式)

    テーブル1の 日付フィールドには「yyyy/mm/dd hh:mm」形式にしているため 「2009/02/28 0:30」と入力されています。 クエリ1に SELECT テーブル1.日付 FROM テーブル1 WHERE (((テーブル1.日付)=Date())); とした場合は 「2009/02/28 0:30」 は表示されません。 テーブル1の 「2009/02/28 0:30」を「2009/02/28 0:00」にすれば クエリ1を実行すると「2009/02/28 0:00」のレコードが表示されます。 どうすれば日付+時間の場合も日付で抽出することができるのでしょうか? アクセス2003です。 よろしくお願いします。