SQL 10 函數 3 日期時間函數 - 6 計算一個日期是星期幾

計算一個日期是星期幾在日常生活中山非常有用的,比如如果安排的報到日期是週末那麼就像後拖延報道日期,在主流的數據庫中對這個功能都提供了很好的支持。

1. MySQL

MySQL 中提供的DATENAME()函數用於計算一個日期是星期幾,比如下面的SQL語句用於計算出生日期和註冊日期各式星期幾:

SELECT FBirthday, DAYNAME(FBirthday), FRegDay, DAYNAME(FRegDay) FROM T_Person

 

2. Oracle

Oracle提供的TO_CHAR()函數用於將數據庫轉化爲字符串類型,當針對時間日期類型數據進行轉化你的時候,它接受兩個參數,其參數格式如下:

TO_CHAR(date, format)

其中date爲帶轉換的日期,參數format爲格式化字符串,數據庫系統將按照這個字符串對date進行轉換。格式化字符串中可以採用如下的佔位符:

可以簡單地將佔位符作爲參數傳給TO_CHAR()函數,下面的SQL語句用於計算出生日期的年份、月份及週數:

佔位符

說明

YEAR

年份,比如 NINETEEN NINETY-EIGHT

YYYY

4位年份,比如 1998

YYY

年份後 3位,比如 998

YY

年份後 2位,比如 98

Y

年份後 1位,比如 8

IYYY

符合 ISO標準的 4位年份,比如 1998

IYY

符合 ISO標準的年份後 3位,比如 998

IY

符合 ISO標準的年份後 2位,比如 98

I

符合 ISO標準的年份後 1位,比如 8

Q

以整數表季度度,比如 1

MM

以整數表示月份,比如 01

MON

月份的名稱,比如 Feb

MONTH

月份的名稱,補足 9個字符

RM

羅馬錶示法的月份,比如 VIII

WW

日期屬於當年的第幾周,比如 30

W

日期屬於當月的第幾周,比如 2

IW

日期屬於當年的第幾周(按 ISO標準),比如 30

D

日期屬於周幾,以整數表示,返回值返回值爲 1 7

DAY

日期屬於周幾,以名字的形式表示 ,比如 FRI

DD

日期屬於當月的第幾天,比如 2

DDD

日期屬於當年的第幾天,比如 168

DY

日期屬於周幾,以名字形式表示,比如 FRI

HH

小時部分( 12小時制)

HH12

小時部分( 12小時制)

HH24

小時部分( 24小時制)

MI

分鐘部分

SS

秒部分

SSSSS

自從午夜開始的秒數

 

SELECT FBirthday, TO_CHAR(FBirthday, 'YYYY') as yyyy,

TO_CHAR(FBirthday, 'MM') as mm,

TO_CHAR(FBirthday, 'MON') as mon,

TO_CHAR(FBirthday, 'WW') as ww

FROM T_Person

同樣還可以將佔位符組合起來實現更加複雜的轉換邏輯,比如下面的SQL語句用於以“2008-08-08”這樣的形式顯示出生日期,以及以“31-2007-02”形式顯示註冊的日期:

SELECT FBirthday,

TO_CHAR(FBirthday, 'YYYY-MM-DD') as yyymmdd,

TO_CHAR(FRegDay, 'DD-YYYY-MM') as ddyyyymm

FROM T_Person

 

我們前面提到了,當用“DAY”作爲參數的時候就可以哦將日期格式化爲名字的形式表示星期幾,比如下面的SQL語句用於出生日期及註冊日期各屬於星期幾:

SELECT

FBirthday, TO_CHAR(FBirthday, 'DAY') as birthwk,

FRegDay, TO_CHAR(FRegDay, 'DAY') as regwk,

FROM T_Person

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章