首頁  >  文章  >  資料庫  >  MySQL日期函數詳解

MySQL日期函數詳解

小云云
小云云原創
2018-03-03 10:48:351766瀏覽

Mysql作為一款開元的免費關係型資料庫,使用者基礎非常龐大,本文列出了MYSQL常用日期函數與日期轉換格式化函數,希望能幫助大家。

1、DAYOFWEEK(date)


SELECT DAYOFWEEK(‘2016-01-16') 
SELECT DAYOFWEEK(‘2016-01-16 00:00:00')


-> 7 (表示,记住:星期天=1,星期一=2, ... 星期六=7)

2、WEEKDAY (date)


SELECT WEEKDAY(‘2016-01-16') 
SELECT WEEKDAY(‘2016-01-16 00:00:00')

 


#
-> 5 (表示返回date是在一周中的序号,西方日历中通常一周的开始是星期天,并且以0开始计数,所以,记住:0=星期一,1=星期二, ... 5=星期六)

3、DAYOFMONTH(date)


SELECT DAYOFMONTH(‘2016-01-16') 
SELECT DAYOFMONTH(‘2016-01-16 00:00:00')


-> 16 (表示返回date是当月的第几天,1号就返回1,... ,31号就返回31)

#4、DAYOFYEAR(date)


SELECT DAYOFYEAR(‘2016-03-31') 
SELECT DAYOFYEAR(‘2016-03-31 00:00:00')


-> 91 (表示返回date是当年的第几天,01.01返回1,... ,12.31就返回365)

5、MONTH(date)


SELECT MONTH(‘2016-01-16') 
SELECT MONTH(‘2016-01-16 00:00:00')


-> 1 (表示返回date是当年的第几月,1月就返回1,... ,12月就返回12)

6、DAYNAME(date)


SELECT DAYNAME(‘2016-01-16') 
SELECT DAYNAME(‘2016-01-16 00:00:00')


-> Saturday (表示返回date是周几的英文全称名字)

7、MONTHNAME(date)


SELECT MONTHNAME(‘2016-01-16') 
SELECT MONTHNAME(‘2016-01-16 00:00:00')


-> January (表示返回date的是当年第几月的英文名字)

8、QUARTER(date)


SELECT QUARTER(‘2016-01-16') 
SELECT QUARTER(‘2016-01-16 00:00:00')


-> 1 (表示返回date的是当年的第几个季度,返回1,2,3,4)

9、WEEK(date,index)


SELECT WEEK(‘2016-01-03') 
SELECT WEEK(‘2016-01-03', 0) 
SELECT WEEK(‘2016-01-03', 1)


#
-> 1 (该函数返回date在一年当中的第几周,date(01.03)是周日,默认是以为周日作为一周的第一天,函数在此处返回1可以有两种理解:1、第一周返回0,第二周返回1,.... ,2、以当年的完整周开始计数,第一周返回1,第二周返回2,... ,最后一周返回53)
-> 1 (week()默认index就是0. 所以结果同上)
-> 0 (当index为1时,表示一周的第一天是周一,所以,4号周一才是第二周的开始日)

10、YEAR(date)


#
SELECT YEAR(‘70-01-16') 
SELECT YEAR(‘2070-01-16') 
SELECT YEAR(‘69-01-16 00:00:00')


-> 1970 (表示返回date的4位数年份)
-> 2070 
-> 1969

要注意的是:如果年份只有兩位數,那麼自動補全的機制是以預設時間1970.01.01為界限的,>= 70 的補全19,00bbb5bc5d686b1c1c6207365900a4d5 2
-> 2

mysql中常用的几种时间格式转换函数整理如下

1,from_unixtime(timestamp, format):

timestamp为int型时间,如14290450779;format为转换的格式,包含格式如下:

%M 月名(January…December) 
%W 星期名字(Sunday…Saturday) 
%D 有英文字首的月份的日期(1st, 2nd, 3rd, 等等。) 
%Y 年, 數字, 4 位 
%y 年, 數字, 2 位 
%a 縮寫的星期名字(Sun…Sat) 
%d 月份中的天數, 數字(00… …31) 
%e 月份中的天數, 數字(0…31) 
%m 月, 數字(01…12) 
%c 月, 數字(1…12) 
%b 縮寫的月份名字(Jan…Dec) 
%j 一年中的天數(001…366) 
%H 小時(00…23) 
%k 小時(0… …23) 
%h 小時(01……12) 
%I 小時(01…12) 
%l 小時(1…12) 
%i 分鐘, 數字(00… …59) 
%r 時間,12 小時(hh:mm:ss [AP]M) 
%T 時間,24 小時(hh:mm:ss) 
%S 秒(00…59 ) 
%s 秒(00…59) 
%p AM或PM 
%w 一週中的天數(0=Sunday …6=Saturday ) 
%U 一週(0… …52), 這裡星期日是星期的第一天 
%u 星期(0…52), 這裡星期一是星期的第一 

2,unix_timestamp(date):

作用與from_unixtime()剛好相反,前者是把unix時間戳轉換為可讀的時間,而unix_timestamp()是把可讀的時間轉換為unix時間戳,這在對datetime存儲的時間進行排序時會用到。如unix_timestamp('2009-08-06 10:10:40'),得到1249524739。

如果unix_timestamp()不傳參數,則呼叫now()函數會自動取目前時間。

3,date_format(date, format):

date_format()是將date或datetime類型值轉換為任意的時間格式。例如常見的應用程式場景,某表有一個欄位是更新時間,儲存的是datetime類型,但前台展示時只需要顯示年月日(xxxx-xx-xx),這個時候就可以用date_format(date,'% Y-%m-%d ')處理,而不需要在結果集中用程式循環處理。

相關推薦:

常用的mysql日期函數

#mysql日期和時間類型

php mysql日期操作函數_PHP教學


以上是MySQL日期函數詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn