質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Oracle Database 11g

Oracle DatabaseはRDBMSの商品です。具体的な発売商品として知られているのが、 Oracle9i、Oracle10g、Oracle 11gとOracle 12cです。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

1回答

5340閲覧

UPDATE文で年月を1ヶ月進める

Watanabe_ef

総合スコア28

Oracle Database 11g

Oracle DatabaseはRDBMSの商品です。具体的な発売商品として知られているのが、 Oracle9i、Oracle10g、Oracle 11gとOracle 12cです。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

1クリップ

投稿2015/12/21 10:16

お世話になります。

題意の通り、UPDATE文で日付を1ヶ月進める方法をご教示ください。

ADD_MONTH関数等を使っていろいろ試してみましたが、型が合わないため、
怒られてしまいます。

テーブル構成は以下です。(テーブル名:HOGE)

項目名 型
NENGETSU NUMBER(6)※YYYYMMの6桁

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

こんにちは。

とりあえず数字⇔文字列⇔日付の変換をすれば問題なくいけるはずですよね。

SQL

1update 2 hoge 3set 4 nengetsu = TO_NUMBER(TO_CHAR(ADD_MONTHS(TO_DATE(TO_CHAR(nengetsu), 'YYYYMM'), 1), 'YYYYMM'))

無理やりかな?

投稿2015/12/21 10:59

Tak1wa

総合スコア4791

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Orlofsky

2015/12/21 22:31

年月でもdate型で設計しておくと便利なんだが。 SQL> ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY/MM/DD HH24:MI:SS' ; セッションが変更されました。 SQL> SELECT SYSDATE, TRUNC(SYSDATE, 'MM') AS TRUNCD_MM, ADD_MONTHS(TRUNC(SYSDATE, 'MM'), 1) AS NEXT_MONTH FROM DUAL ; SYSDATE TRUNCD_MM NEXT_MONTH ------------------- ------------------- ------------------- 2015/12/22 07:30:22 2015/12/01 00:00:00 2016/01/01 00:00:00
Watanabe_ef

2015/12/22 00:58

Tak1waさん 無理やりでもかまいません。文字列でも日付でもない、数値型っていうのがとてもやりづらくて・・・。ありがとうございました。 Orlofskyさん 設計を見直すことを、PJ管理者に提案してみます。この先やりづらくなりそうですので。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問