【SQLレシピ】datetime型の年月日を文字列として取り出す

ネコニウム研究所

PCを利用したモノづくりに関連する情報や超個人的なナレッジを掲載するブログ

【SQLレシピ】datetime型の年月日を文字列として取り出す

2022-6-9 |

SQLでdatetime型の時刻は無視して年月日のみを文字列として取り出したい!

概要

この記事では、datetime型の時刻は無視して年月日のみを文字列として取り出す手順を掲載する。

仕様書

環境

  • SQL Server 15.0.2000

手順書

下表のような人事情報を記録してるテーブルEmployeeを例にする。(サンプルなので正規化とか列名が不適切とかジョバンニが東京勤務とかは無視して下さい)

列名 データ型 備考
ID INTEGER ユニークな連番
JoinedAt datetime 入社した日時
Name TEXT 氏名

登録してるデータは下記のとおり。

ID JoinedAt Name
1 2001/04/01 9:00 ジョバンニ
2 2001/04/01 9:00 カムパネルラ
3 2001/07/07 12:00 ザネリ
4 2002/04/01 18:00 マルソ

今回は氏名(Name列)とJoinedAt列をVARCHAR型でyyyy/mm/dd形式で出力してみる。

SELECT
    Name,
    CONVERT(VARCHAR, JoinedAt, 111)
FROM Employee

クエリを実行すると下記のように重複内でデータの数が出力される。

Name (列名なし)
ジョバンニ 2001/04/01
カムパネルラ 2001/04/01
ザネリ 2001/07/07
マルソ 2002/04/01

CONVERT関数の第3引数によって出力される形式が変わる。
例をいくつか挙げる。

入力 第3引数 出力
2001/04/01 9:00 111 2001/04/01
2001/04/01 9:00 11 01/04/01
2001/04/01 9:00 112 20010401
2001/04/01 9:00 12 010401
2001/04/01 9:00 120 2001-04-01 9:00:00
2001/04/01 9:00 20 2001-04-01 9:00:00
2001/04/01 9:00 121 2001-04-01 9:00:00.000
2001/04/01 9:00 21 2001-04-01 9:00:00.000

まとめ(感想文)

簡単に日計のデータを作るのに便利かもね!