關於MySQL日期時間函數,每回總是能發現一些新特性,索性做一次統一的整理,補充下筆記庫。可以會有所遺漏,歡迎補充。
本文整理了30個時間日期函數,分為4個段落分析,詳見下文。
1這三者的差異
datediff(date1, date2 ),timediff(time1 , time2 ), timestampdiff(interval,datetime_expr1,datetime_expr2)
#DATE_ADD(date,INTERVAL expr type)
adddate (date,INTERVAL expr type ) ,timestampadd(interval, count, timestamp)
例子
Type 值 | |||
---|---|---|---|
MICROSECOND | 十分之一秒, ±n | date_sub( @date ,INTERVAL 2 MICROSECOND ) | 2017-09-09 09:09:08.999998 |
#SECOND | 秒 | date_sub( @date ,INTERVAL 2 SECOND ) | 2017-09-09 09:09:07 |
MINUTE | 分鐘 | date_sub( @date ,INTERVAL 2 MINUTE ) | 2017-09-09 09:07:09 |
#時 | date_sub( @date ,INTERVAL 2 HOUR) | 2017-09-09 | 07:07:09 |
#天 | date_sub( @date ,INTERVAL 2 DAY ) | #2017-09- | 07 09:09:09 |
週 | date_sub( @date ,INTERVAL 2 WEEK ) | 2017- | 08-26 09:09:09 |
月 | date_sub( @date ,INTERVAL 2 MONTH ) | 2017- | 07-09 09: 09:09 |
季度 | date_sub( @date ,INTERVAL 2 QUARTER ) | 2017- | 03-09 09:09:09 |
年 | date_sub( @date ,INTERVAL 2 YEAR ) | 2015-09-09 09:09:09 | |
表達式,從秒到十分之1秒 | date_sub( @date ,INTERVAL '2.2' SECOND_MICROSECOND ) | 2017-09-09 09:09: | 06.980000 |
表達式,從分鐘到十分之一秒 | date_sub( @date ,INTERVAL '2:2.2' MINUTE_MICROSECOND ) | ##2017-09 -09 09: | 07:06.800000|
表達式,從分鐘到秒 | date_sub( @date , INTERVAL '2:2' MINUTE_SECOND ) | #2017-09-09 09: | 07:07|
date_sub( @date ,INTERVAL '2:2:2.2' HOUR_MICROSECOND ) | 2017-09-09 | 07:07:06.800000 | HOUR_SECOND |
date_sub( @date ,INTERVAL '2:2:2' HOUR_SECOND ) | 2017-09-09 | 07:07:07 | #HOUR_MINUTE |
date_sub( @date ,INTERVAL '2:2' HOUR_MINUTE ) | 2017-09-09 | 07:07 | :09#DAY_MICROSECOND7 |
#DAY_MICROSECOND | 表達式,天到十分之一秒, | date_sub( @date ,INTERVAL '2 2:2:2.2' DAY_MICROSECOND )2017-09- | 07 07:07:06.800000|
DAY_SECOND | 表達式,天到秒, | date_sub( @date ,INTERVAL ' 2 2:2:2' DAY_SECOND )2017-09- | 07 07:07:07|
DAY_MINUTE | DAY_MINUTE | ||
date_sub( @date ,INTERVAL '2 2:2 ' DAY_MINUTE ) | 2017-09- | 07 07:07 | :09DAY_HOUR |
date_sub( @date ,INTERVAL '2 2' DAY_HOUR ) | 2017 -09- | 07 07 | :09:09#YEAR_MONTH |
DATE_ADD(date,INTERVAL expr type)
日期增加指定的時間間隔,使用方法跟date_sub一樣
#adddate(date,INTERVAL expr type )
日期增加n 天
#日增加指定的時間間隔,使用方法DATE_ADD 一樣
adddate(date,INTERVAL expr type )
adddate(date, n )
#timestampadd(interval, count, timestamp)
from_unixtime(),unix_timestamp()
#makedate(year, day_of_year ),maketime(hour,minute,second)
#date(datetime),timestamp( date [,time])
convert_tz(datetime, from_tz, to_tz)
date_format(datetime,format),str_to_date(string,format)
秒
%r 時間,12-小時(hh:mm:ss AM 或PM)
#%H 小時(00-23)
%k 小時(0-23)
%h 小時( 01-12)
%I 小時(01-12) #%h跟%I,沒區別( 大寫的i )
# %l 小時(1-12) 小寫的L
%p AM 或PM
##%S 秒(00-59)
%s 秒(00-59)
#%f 微秒
## %w 週的天(0=星期日, 6=星期六,0-6)
%U 週(00-52) 星期日是一週的第一天
#時間戳記到轉換
日期時間格式轉化為日期格式
#makedate 根據年份跟年份中的第幾天,轉換為日期
#將時間轉換為時間戳
#unix_timestamp
makedate (year, day_of_year),maketime(hour,minute,second)
##timestamp(date),timestamp(date,time)
#convert_tz(datetime,from_tz,to_tz)
以上是MySQL中關於日期函數總計的詳細內容。更多資訊請關注PHP中文網其他相關文章!