MySQL的時間函數
MySQL支持的日期時間類型
DATE:用來表示年月日 0000-00-00
DATETIME:表示年月日時分秒。 0000-00-00 00:00:00
TIMESTAMP:顯示為"YYYY-MM-DD HH:MM:SS" 00000000000000
TIME:用來表示時分秒。 00:00:00
YEAR:表示年份。 0000
CURDATE()或者CURRENT_DATE()
返回當前日期,按照“YYYY-MM-DD”或者“YYYYMMDD“格式顯示。只包含年月日
select curdate()+0;顯示結果為:20140214
select curdate()+1;顯示結果為:20140215
CURTIME()或者CURRENT_TIME()
返回當前時間,包括時分秒
NOW()
返回當前時間,包含日期和時間
DAYOFWEEK()
返回星期的第幾天
DAYOFMONTH()
返回月份的第幾天
UTC_DATE函數
返回UTC時間,北京時間=UTC時間+8小時
UNIX_TIMESTAMP(), UNIX_TIMESTAMP(date)
若無參數調用,則返回一個Unix timestamp ('1970-01-01 00:00:00' GMT 之后的秒數) 作為無符號整數。若用date 來調用UNIX_TIMESTAMP(),它會將參數值以'1970-01-01 00:00:00' GMT后的秒數的形式返回。date 可以是一個DATE 字符串、一個 DATETIME字符串、一個 TIMESTAMP或一個當地時間的YYMMDD 或YYYMMDD格式的數字。
- mysql> SELECT UNIX_TIMESTAMP();
- -> 882226357
- mysql> SELECT UNIX_TIMESTAMP('1997-10-04 22:23:00');
- -> 875996580
FROM_UNIXTIME()
返回unix時間戳的日期值。
mysql>SELECT FROM_UNIXTIME(875996580); ->'1997-10-04 22:23:00'
TO_DAYS(date)
給定一個日期date, 返回一個天數 (從年份0開始的天數 )。
- mysql> SELECT TO_DAYS(950501);
- -> 728779
- mysql> SELECT TO_DAYS('1997-10-07');
- -> 729669
DATEDIFF函數
datediff(date1,date2)用來計算兩個日期之間相差的天數。
DATE_ADD函數或者ADDDATE函數
date_add(date,interval expr type):返回與所給日期date相差interval時間段的日期。
mysql>select date_add(curdate(), interval 1 day) >2014-02-15 mysql>select date_add(curdate(), interval -1 day) >2014-02-13
DATE_SUB函數或者SUBDATE函數
date_sub(date,interval expr type):返回比所給日期早expr type的日期。
mysql>select date_sub(curdate(), interval 1 day) >2014-02-13 mysql>select date_add(curdate(), interval -1 day) >2014-02-15
MySQL 允許任何expr 格式中的標點分隔符。表中所顯示的是建議的 分隔符。若 date 參數是一個 DATE 值,而你的計算只會包括 YEAR、MONTH和DAY部分(即, 沒有時間部分), 其結果是一個DATE 值。否則,結果將是一個 DATETIME值。
若位于另一端的表達式是一個日期或日期時間值 , 則INTERVAL expr type只允許在 + 操作符的兩端。對于 –操作符, INTERVAL expr type 只允許在其右端,原因是從一個時間間隔中提取一個日期或日期時間值是毫無意義的。 (見下面的例子)。
mysql> SELECT '1997-12-31 23:59:59' + INTERVAL 1 SECOND; -> '1998-01-01 00:00:00' mysql> SELECT INTERVAL 1 DAY + '1997-12-31'; -> '1998-01-01' mysql> SELECT '1998-01-01' - INTERVAL 1 SECOND; -> '1997-12-31 23:59:59'
EXTRACT() 函數用于返回日期/時間的單獨部分,比如年、月、日、小時、分鐘等等。
EXTRACT(unit FROM date)
date 參數是合法的日期表達式。unit 參數可以是下列的值:
Unit 值 |
---|
MICROSECOND |
SECOND |
MINUTE |
HOUR |
DAY |
WEEK |
MONTH |
QUARTER |
YEAR |
SECOND_MICROSECOND |
MINUTE_MICROSECOND |
MINUTE_SECOND |
HOUR_MICROSECOND |
HOUR_SECOND |
HOUR_MINUTE |
DAY_MICROSECOND |
DAY_SECOND |
DAY_MINUTE |
DAY_HOUR |
YEAR_MONTH |
DATE_FORMAT(date,format)
根據format字符串格式化date值
(在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), 這里星期一是星期的第一天
%% 字符% )
%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), 這里星期一是星期的第一天
%% 字符% )
mysql> select DATE_FORMAT('1997-10-04 22:23:00','%W %M %Y'); -> 'Saturday October 1997' mysql> select DATE_FORMAT('1997-10-04 22:23:00','%H:%i:%s'); -> '22:23:00' mysql> select DATE_FORMAT('1997-10-04 22:23:00','%D %y %a %d %m %b %j'); -> '4th 97 Sat 04 10 Oct 277' mysql> select DATE_FORMAT('1997-10-04 22:23:00','%H %k %I %r %T %S %w'); -> '22 22 10 10:23:00 PM 22:23:00 00 6'
LAST_DAY()
獲取一個日期或者日期時間值,返回該月的最后一天。
>SELECT LAST_DAY('2013-02-14'); >'2013-02-28'
1.返回$now時間的當月的第一天
select DATE_FORMAT(date(concat(extract(year_month from $now),'01')));
2.返回$now所在星期的第一天
select date_sub($now,interval dayofweek($now)-1 day);
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!