SQL Server DATEPART / DATENAME

2020-12-16

筆記如何使用 DATEPART / DATENAME 函式轉換以及取用 SQL Server 的日期時間類型資料 📅

SQL Server Logo

說明

DATEPART

DATEPART 的回傳型別為數值。

SELECT GETDATE() NOW /* 2020-12-17  18:00:00.000 */
SELECT DATEPART(YEAR , GETDATE()) Year /* 2020 */
SELECT DATEPART(MONTH , GETDATE()) Month /* 12 */
SELECT DATEPART(DAYOFYEAR , GETDATE()) DayOfYear /* 352 */
SELECT DATEPART(WEEK , GETDATE()) Week /* 51 */
SELECT DATEPART(WEEKDAY , GETDATE()) WeekDay /* 5 */
SELECT DATEPART(QUARTER , GETDATE()) Quarter /* 4 */

其中 WeekDay 各星期對照如下:

{
  1: '星期日',
  2: '星期一',
  3: '星期二',
  4: '星期三',
  5: '星期四',
  6: '星期五',
  7: '星期六',
}

DATEPART

DATENAME

DATENAME 的回傳型別為字串,主要與 DATEPART 的差異會表現在月份星期等可用文字表現的回傳結果。

SELECT GETDATE() NOW /* 2020-12-17  18:00:00.000 */
SELECT DATENAME(YEAR , GETDATE()) Year /* 2020 */
SELECT DATENAME(MONTH , GETDATE()) Month /* December */
SELECT DATENAME(DAYOFYEAR , GETDATE()) DayOfYear /* 352 */
SELECT DATENAME(WEEK , GETDATE()) Week /* 51 */
SELECT DATENAME(WEEKDAY , GETDATE()) WeekDay /* Thursday */
SELECT DATENAME(QUARTER , GETDATE()) Quarter /* 4 */