プロが教える店舗&オフィスのセキュリティ対策術

SQL ServerでDate型の列から年月だけを取得するは、どのようなSQLを書けば良いのでしょうか?

色々方法はあるみたいなのですが、どれもうまく動かず...

イメージ:2020-08-25 を 202008 という形で取得したい。

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

A 回答 (2件)

○最近のバージョンだと、 formatは非決定的なので、パフォーマンス等に影響が出るかもしれません。


https://docs.microsoft.com/ja-jp/sql/relational- …
決定的でないと不都合なようなら、別の関数を使って取得します。
・CONVERT で決定的な書式を使い、RIGHT/LEFT等の文字列関数で欲しいところを取り出す
・ YEAR MONTHで年と月を取り出し、加工する。

○文字列にこだわる必要がありますか?
・DateAddやDateSerial を使って Date型で「対象年月の1日」をもとめる
・ YEAR * 100 + MONTHでintにする

○SQLでやる必要がありますか?
・例えば VB.NETで読み出したのなら、DateにDirectcastして .ToString() で文字列に、とか
    • good
    • 1

format()を使うとか。


以下2019のsqlcmdでの実行例)
1> select cast(format(getdate(),'yyyyMM') as varchar(6));
2> go

------
202008

(1 行処理されました)
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


このQ&Aを見た人がよく見るQ&A