
INT型の日付(20070621)をWHEREでその月の1日から末日までを指定したいのですが、どのようなSQLを書けばよいのでしょうか?ちなみに下記に私が書いたものを記載しますが、もっと効率のよい方法はないのでしょうか?
1日を指定
day > { fn CONCAT({ fn CONCAT(LEFT(LEFT({ fn CURDATE()}, 7), 4), RIGHT(LEFT({ fn CURDATE() }, 7), 2)) }, '01') })
末日の指定
day < { fn CONCAT({ fn CONCAT(RIGHT(LEFT(DATEADD(d,-1,{ fn CONCAT({ fn CONCAT(RIGHT(LEFT(DATEADD(m, 1, { fn CURDATE() }), 10), 4), LEFT(LEFT(DATEADD(m, 1, { fn CURDATE() }), 10), 2)) }, '01') }),
10), 4), LEFT(LEFT(DATEADD(d, - 1,{ fn CONCAT({ fn CONCAT(RIGHT(LEFT(DATEADD(m, 1, { fn CURDATE() }), 10),4), LEFT(LEFT(DATEADD(m, 1, { fn CURDATE() }), 10), 2)) }, '01') }), 10), 2)) },
RIGHT(LEFT(LEFT(DATEADD(d, - 1, { fn CONCAT({ fn CONCAT(RIGHT(LEFT(DATEADD(m, 1, { fn CURDATE() }), 10),4), LEFT(LEFT(DATEADD(m, 1, { fn CURDATE() }), 10), 2)) }, '01') }), 10), 5),
No.3ベストアンサー
- 回答日時:
1日の日付はcastoffさんのやり方で取得できます。
Cast(LEFT('20070621',1,6) + '01' as DateTime)
翌月の1日は上記をDateAdd関数で1月進めることで取得できます。
DateAdd(m,1,Cast(LEFT('20070621',1,6) + '01' as DateTime))
where句には
day >= 当月の1日
and day < 翌月の1日
と記述すると当月分が指定できます。
No.2
- 回答日時:
1日
Cast(LEFT('20070621',1,6) + '01' as DateTime)
※DDを01へ
末日
DateAdd(day,-1,LEFT(DateAdd(month,1,Cast('20070621' as DateTime)),1,6) + '01'))
※翌月の1日を求めたあと、前日を求める
でいいですか?
回答ありがとうございます。
回答を参考に末日指定を
DATEADD(day, - 1, DATEADD(month, 1, CAST(LEFT ({ fn CURDATE() }, 7) + '-01' AS datetime)))
というようにしました。結果は2007/06/30というようになりましたが、これをINT型の「20070630」にしたい場合は上記の式をどのようにすればよいのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) マクロのコードを、少しでも削って短くしたい 3 2022/08/30 07:46
- Visual Basic(VBA) 【マクロ】フォルダにファイルが1つも無い時に、ファイルがありませんとメッセージを表示する 4 2022/08/28 08:48
- JavaScript 台形公式 2 2022/12/21 18:38
- Excel(エクセル) 【マクロ】フォルダAからダBへファイルを、ファイルの更新日時の条件で、1つづつ移動するには? 3 2022/08/25 09:56
- 数学 関数列の収束について 次の問題を教えて欲しいです。 区間[0,1) の関数列fnと関数f(x)につい 1 2022/06/01 08:33
- その他(ホビー) GLOCK 43X と FN Reflex と S&W EQUALIZER は、幅はそれぞれ、何イン 1 2023/04/25 13:22
- 軍事学 GLOCK 43X と FN Reflex と S&W EQUALIZER は、幅はそれぞれ、何イン 1 2023/04/27 16:33
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQL Server 2005 Expressを利用...
-
nvarcharとdatetimeで作成され...
-
フィルターかけた後、重複を除...
-
差し込み後、元データを変更し...
-
エクセルで最後の文字だけ置き...
-
外部参照してるキーを主キーに...
-
for whichの使い方
-
UPDATE文のWHERE条件に他のテー...
-
JavaScriptの定数名が取り消し...
-
エクセルの関数について教えて...
-
SQLで特定の項目の重複のみを排...
-
SELECT 文 GROUP での1件目を...
-
INSERT文でフィールドの1つだ...
-
SQLで列名を変数にできないでし...
-
重複していないレコードの抽出...
-
SQLServerで文字列の末尾からあ...
-
Accessの実行時エラーについて
-
SELECT文で列名指定して桁あわ...
-
日本語のエイリアスは" "で囲...
-
access2021 VBA メソッドまたは...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAのAccessでDATE型のINSERT
-
クロス集計で、列を動的に
-
●SQL Server 2000●日付だけ取得...
-
SQL文に時刻が含まれる場合
-
select文について教えて下さい
-
SQLサーバでの和暦(int)→西暦へ...
-
ACCESS 日付の比較
-
select文で int を yyyy-mm-dd...
-
SQLで日付の指定
-
SQLクエリについて
-
SQLのクエリの書き方を教えて下...
-
SQL Server 2005 Expressを利用...
-
Datetime型 条件について
-
差し込み後、元データを変更し...
-
フィルターかけた後、重複を除...
-
SQLで特定の項目の重複のみを排...
-
エクセルで最後の文字だけ置き...
-
エクセルの関数について教えて...
-
外部参照してるキーを主キーに...
-
SELECT 文 GROUP での1件目を...
おすすめ情報