SQL道場 日付時刻関数 DATEPART関数
SQLで日付値から任意の日付要素の数値を取得するDATEPART関数について記載しています。
対応データベース:SQLServer Access
DATEDIFF関数の文法
SELECT DATEPART(日付要素,日付) FROM テーブル
SELECT DATEPART(date elements, date) FROM tableその他
| 引数 Arguments | 日付要素 Date element | 文字列型 String type |
| 日付1 Date1 | 文字列型 String type | |
| 返値 return value | 文字型 日付要素が数値で戻ります。 Returns the character date element as a number. |
SQLServer
| 引数 Arguments | 日付要素 Date element | SQL Server、Accessの日付の要素 SQL Server, Access Date Element |
| 開始日付 Start Date | 以下のいずれかの値で解決できる式 (An expression that can be resolved by one of the following values:) ・date ・datetime ・datetimeoffset ・datetime2 ・smalldatetime ・time | |
| 終了日付 End Date | 開始日付と同様 Similar to Start Date | |
| 返値 return value | int | 返値参照 See Return Value |
返値
| 日付要素 Date element | 戻り値 Return value |
|---|---|
| year、yyyy、yy | 2008 |
| quarter、qq、q | 4 |
| month、mm、m | 12 |
| dayofyear、dy、y | 303 |
| day、dd、d | 30 |
| week、wk、ww | 44 |
| weekday、dw | 3 |
| hour、hh | 12 |
| minute、n | 15 |
| second、ss、s | 32 |
| millisecond、ms | 123 |
| microsecond、mcs | 123456 |
| nanosecond、ns | 123456700 |
| tzoffset, tz | 310 |
| iso_week, isowk, isoww | 44 |
DATEPART関数は指定された日付の日付要素を数値で戻します。MS公式サイト
SQL Server、Accessの日付の要素
| SQL Server | 省略形 abbreviation | Access | |
|---|---|---|---|
| 年 | year | yy,yyyy | yyyy |
| 四半期 | quarter | qq,q | q |
| 月 | month | mm,m | m |
| 年始からの通算日 | dayofyear | dy,y | y |
| 日 | day | dd,d | d |
| 週 | week | wk,ww | ww |
| 曜日 | weekday | dw | w |
| 時間 | hour | hh | h |
| 分 | minute | mi,n | n |
| 秒 | second | ss,s | s |
| ミリ秒 | millisecond | ms | |
| マイクロ秒 | microsecond | mcs | |
| ナノ秒 | nanosecond | ns | |
| tzoffset | tz | ||
| iso_week | isowk、isoww |
実行例
SQLServerの実行例
/* SQL Server 2009/12/31の年始からの日数を取得するサンプル */
SELECT DATEPART(DAYOFYEAR,'2009-12-31'); 
曜日を取得
/* SQL Server 2009/12/01の曜日を取得するサンプル */
SELECT DATEPART(WEEKDAY,'2009-12-01'); 曜日は1~7の数値が返されます。数値の意味は以下となります。
| 返される値 | 曜日 |
| 1 | 日 |
| 2 | 月 |
| 3 | 火 |
| 4 | 水 |
| 5 | 木 |
| 6 | 金 |
| 7 | 土 |
