datetime型から日付を操作
SQL-Serverのdatetime型の値を日付のみだったり時間のみだったりで操作する方法です。
普段はプログラム側で制御する事が多いですが、結合やWHERE句での条件設定の際はよく使用します。
例えば、以下のテーブルを考えます。
支店コード | 支店名 | アクセス日時 |
001 | 岐阜支店 | 2018-12-11 19:07:33 |
002 | 多治見支店 | 2018-12-12 22:39:46 |
003 | 大垣支店 | 2018-12-21 09:15:53 |
004 | 山県支店 | 2018-12-20 18:19:24 |
005 | 各務原支店 | 2018-12-21 09:31:30 |
これを日付のみでSELECTします。
SELECT * FROM テーブルA WHERE アクセス日時 = '2018/12/21'
当然ながら、結果は何も取得できません。
アクセス日時 = '2018/12/21'
は、
アクセス日時 = '2018/12/21 00:00:00'
という解釈になる為です。
この場合は、CONVERT関数を使用します。
SELECT * FROM テーブルA WHERE CONVERT(date,アクセス日時) = '2018/12/21'
支店コード | 支店名 | アクセス日時 |
003 | 大垣支店 | 2018-12-21 09:15:53 |
005 | 各務原支店 | 2018-12-21 09:31:30 |
なお、同じ型変換でCAST関数もありますが、基本的にCONVERT関数が上位なので、あえてCAST関数を使用することはないでしょう。