[過去ログ]
SQL質疑応答スレ 19問目 (1002レス)
上
下
前
次
1-
新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
8
: 2019/05/23(木)20:43 ID:???
AA×
[240|
320
|
480
|
600
|
100%
|
JPG
|
べ
|
レス栞
|
レス消
]
8: [sage] 2019/05/23(木) 20:43:39 ID:??? よくある質問5 (問) 年月(YYYYMM)を指定し、その年月に対応する年月日を取得したい 例:201006を指定したら、以下の結果を得たい 20100601 20100602 ・ ・ ・ 20100630 (答) SQLでは存在しないデータを生成することはできません。 この問いの場合は素直にカレンダーテーブルを用意しましょう。 どうしてもやりたければ以下のような方法もなくはないですが、 再帰問合せの本来の使い方ではありません。 やめておくことを強くお奨めします。 (PostgreSQLの連番を生成する関数なら辛うじてセーフかもしれませんが 賛否の分かれるところでしょう。) with TEMP (NUM) as ( select 1 from dual union all select NUM + 1 from TEMP where NUM < 31 ) select to_char(to_date('201006', 'YYYYMM') + NUM - 1, 'YYYYMMDD') from TEMP where to_date('201006', 'YYYYMM') + NUM - 1 < add_months(to_date('201006', 'YYYYMM'), 1) ; ※上記はOracleの場合です。(11gR2以降) ※再帰問合せをサポートするDBMSならこれを適当に改変すれば動きますが どのみちお奨めしません。 http://mevius.5ch.net/test/read.cgi/db/1558610740/8
よくある質問5 問 年月を指定しその年月に対応する年月日を取得したい 例を指定したら以下の結果を得たい 答 では存在しないデータを生成することはできません この問いの場合は素直にカレンダーテーブルを用意しましょう どうしてもやりたければ以下のような方法もなくはないですが 再帰問合せの本来の使い方ではありません やめておくことを強くお奨めします の連番を生成する関数なら辛うじてセーフかもしれませんが 賛否の分かれるところでしょう 上記はの場合です以降 再帰問合せをサポートするならこれを適当に改変すれば動きますが どのみちお奨めしません
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 994 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
ぬこの手
ぬこTOP
0.032s