1:獲取系統當前日期和時間
NOW(),LOCALTIME(),LOCALTIMESTAMP(),CURDATE(),CURRENT_DATE(),CURRENT_TIME(),CURRENT_TIMESTAMP(),SYSDATE()mysql
mysql> SELECT NOW(),LOCALTIME(),LOCALTIMESTAMP(); +---------------------+---------------------+---------------------+
| NOW() | LOCALTIME() | LOCALTIMESTAMP() | +---------------------+---------------------+---------------------+
| 2018-07-02 20:14:27 | 2018-07-02 20:14:27 | 2018-07-02 20:14:27 | +---------------------+---------------------+---------------------+
mysql> SELECT CURDATE(),CURRENT_DATE(),CURRENT_TIME(); +------------+----------------+----------------+
| CURDATE() | CURRENT_DATE() | CURRENT_TIME() | +------------+----------------+----------------+
| 2018-07-02 | 2018-07-02 | 20:16:33 | +------------+----------------+----------------+
mysql> SELECT CURRENT_TIMESTAMP(),SYSDATE(); +---------------------+---------------------+
| CURRENT_TIMESTAMP() | SYSDATE() | +---------------------+---------------------+
| 2018-07-02 20:17:17 | 2018-07-02 20:17:17 | +---------------------+---------------------+
1 row in set (0.00 sec)
2:DATE(date) sql
返回date的日期部分函數
mysql> SELECT DATE('2018-07-01 10:00:00'); +-----------------------------+
| DATE('2018-07-01 10:00:00') | +-----------------------------+
| 2018-07-01 | +-----------------------------+
1 row in set (0.00 sec)
3:DATE_ADD(date,INTERVAL expr type)spa
給日期添加指定的時間間隔;expr 參數是您但願添加的時間間隔unix
mysql> select date_add('2018-01-01',interval 2 day); +---------------------------------------+
| date_add('2018-01-01',interval 2 day) | +---------------------------------------+
| 2018-01-03 | +---------------------------------------+
mysql> SELECT DATE_ADD('2018-01-01',INTERVAL 1 MONTH); +-----------------------------------------+
| DATE_ADD('2018-01-01',INTERVAL 1 MONTH) | +-----------------------------------------+
| 2018-02-01 | +-----------------------------------------+
4:DATE_SUB(date,INTERVAL expr type)code
從日期減去指定的時間間隔orm
mysql> select date_sub('2018-01-01 18:00:00',interval 2 hour); +-------------------------------------------------+
| date_sub('2018-01-01 18:00:00',interval 2 hour) | +-------------------------------------------------+
| 2018-01-01 16:00:00 | +-------------------------------------------------+
mysql> select date_sub('2018-12-01',interval 1 year); +----------------------------------------+
| date_sub('2018-12-01',interval 1 year) | +----------------------------------------+
| 2017-12-01 | +----------------------------------------+
5:DATEDIFF(date1,date2)blog
返回兩個日期之間的天數索引
mysql> select datediff('2018-03-10','2018-04-10'); +-------------------------------------+
| datediff('2018-03-10','2018-04-10') | +-------------------------------------+
| -31 | +-------------------------------------+
mysql> select datediff('2018-04-10','2018-03-10'); +-------------------------------------+
| datediff('2018-04-10','2018-03-10') | +-------------------------------------+
| 31 | +-------------------------------------+
6:DATE_FORMAT()ci
用不一樣的格式顯示日期/時間
mysql> select date_format(now(),'%H:%i:%s %m-%d-%Y'); +----------------------------------------+
| date_format(now(),'%H:%i:%s %m-%d-%Y') | +----------------------------------------+
| 20:59:26 07-02-2018 | +----------------------------------------+
7:EXTRACT()
返回日期/時間的單獨部分,好比年、月、日、小時、分鐘等等
mysql> select extract(year from '2018-06-06'); +---------------------------------+
| extract(year from '2018-06-06') | +---------------------------------+
| 2018 | +---------------------------------+
mysql> select extract(day from '2018-06-06'); +--------------------------------+
| extract(day from '2018-06-06') | +--------------------------------+
| 6 | +--------------------------------+
mysql> select extract(second from '2018-06-06 16:16:17'); +--------------------------------------------+
| extract(second from '2018-06-06 16:16:17') | +--------------------------------------------+
| 17 | +--------------------------------------------+
8:DAYNAME(),MONTHNAME() ,DAYOFWEEK()
DAYNAME()返回日期的星期名;
返回日期的月份名字
DAYOFWEEK()返回值 1-週日 2-週一 3-週二….7-週六
mysql> select dayname(now()); +----------------+
| dayname(now()) | +----------------+
| Monday | +----------------+
mysql> select monthname('2018-07-01'); +-------------------------+
| monthname('2018-07-01') | +-------------------------+
| July | +-------------------------+
mysql> select dayofweek(now()); +------------------+
| dayofweek(now()) | +------------------+
| 2 | +------------------+
9:DAY(date)
返回date中的日期
mysql> select day('2018-01-15'); +-------------------+
| day('2018-07-15') | +-------------------+
| 15 | +-------------------+
10:DAYOFWEEK(date),WEEKDAY(date)
DAYOFWEEK返回日期date的星期索引(1=星期天,2=星期一, ……7=星期六);
WEEKDAY返回date的星期索引(0=星期一,1=星期二, ……6= 星期天)
mysql> select dayofweek('2018-07-02'); +-------------------------+
| dayofweek('2018-07-02') | +-------------------------+
| 2 | +-------------------------+
mysql> select weekday('2018-07-02'); +-----------------------+
| weekday('2018-07-02') | +-----------------------+
| 0 | +-----------------------+
11:DAYOFMONTH(date)
返回date的月份中日期,在1到31範圍內
mysql> select DAYOFMONTH('2018-01-30'); +--------------------------+
| DAYOFMONTH('2018-01-30') | +--------------------------+
| 30 | +--------------------------+
12:DAYOFYEAR(date)
返回date在一年中的日數, 在1到366範圍內
mysql> select DAYOFYEAR('2018-07-01'); +-------------------------+
| DAYOFYEAR('2018-07-01') | +-------------------------+
| 182 | +-------------------------+
13:TO_DAYS(date),FROM_DAYS(N)
TO_DAYS給出一個日期 date,返回西元0年至日期date是總共多少天;
FROM_DAYS給出一個天數 N,返回一個 DATE 值
mysql> select to_days('2018-07-01'); +-----------------------+
| to_days('2018-07-01') | +-----------------------+
| 737241 | +-----------------------+
mysql> select from_days(737241); +-------------------+
| from_days(737241) | +-------------------+
| 2018-07-01 | +-------------------+
14:UNIX_TIMESTAMP()
當前時間戳
mysql> select UNIX_TIMESTAMP(); +------------------+
| UNIX_TIMESTAMP() | +------------------+
| 1530588395 | +------------------+
15:FROM_UNIXTIME(unix_timestamp,format)
把時間戳轉化成日期時間
mysql> select FROM_UNIXTIME(UNIX_TIMESTAMP()),FROM_UNIXTIME(UNIX_TIMESTAMP(),'%Y-%m-%d %H:%i'); +---------------------------------+--------------------------------------------------+
| FROM_UNIXTIME(UNIX_TIMESTAMP()) | FROM_UNIXTIME(UNIX_TIMESTAMP(),'%Y-%m-%d %H:%i') | +---------------------------------+--------------------------------------------------+
| 2018-07-03 11:28:09 | 2018-07-03 11:28 | +---------------------------------+--------------------------------------------------+
16:GET_FORMAT({DATE|TIME|DATETIME}, {‘EUR’|’USA’|’JIS’|’ISO’|’INTERNAL’})
返回一個格式化的日期字符串
mysql> select GET_FORMAT(DATE,'USA'); +------------------------+
| GET_FORMAT(DATE,'USA') | +------------------------+
| %m.%d.%Y | +------------------------+
17:YEAR(date)
返回date的年份
mysql> SELECT YEAR('70-01-16'),YEAR('2018-01-01'); +------------------+--------------------+
| YEAR('70-01-16') | YEAR('2018-01-01') | +------------------+--------------------+
| 1970 | 2018 | +------------------+--------------------+
18:HOUR(time),MINUTE(time),SECOND(time)
返回時、分、秒
mysql> select hour('15:31:13'),minute('15:32:22'),second('15:33:59'); +------------------+--------------------+--------------------+
| hour('15:31:13') | minute('15:32:22') | second('15:33:59') | +------------------+--------------------+--------------------+
| 15 | 32 | 59 | +------------------+--------------------+--------------------+
19:LAST_DAY(date)
獲取日期或日期時間值,並返回該月最後一天的相應值。若是參數無效,返回NULL。
mysql> select last_day(now()); +-----------------+
| last_day(now()) | +-----------------+
| 2018-07-31 | +-----------------+
mysql> select last_day('2018-01-01'); +------------------------+
| last_day('2018-01-01') | +------------------------+
| 2018-01-31 | +------------------------+
20:MAKEDATE(year,dayofyear)
返回一個日期,給定年和一天的年值。dayofyear必須大於0,不然結果爲空。
mysql> select makedate('2018',360); +----------------------+
| makedate('2018',360) | +----------------------+
| 2018-12-26 | +----------------------+
21:MAKETIME(hour,minute,second)
返回從hour:minute:second
mysql> select maketime(12,30,40); +--------------------+
| maketime(12,30,40) | +--------------------+
| 12:30:40 | +--------------------+
22:MICROSECOND(expr)
返回時間或日期時間表達式expr中的微秒,其值在0到99999999之間。
mysql> select MICROSECOND('12:32:35.4325'); +------------------------------+
| MICROSECOND('12:32:35.4325') | +------------------------------+
| 432500 | +------------------------------+
23:PERIOD_ADD(month,add)
返回對month作增減的操做結果,month的格式爲yyMM或者yyyyMM,返回的都是yyyyMM格式的結果,add能夠傳負值
mysql> select PERIOD_ADD(201807,1),PERIOD_ADD(201807,-2); +----------------------+-----------------------+
| PERIOD_ADD(201807,1) | PERIOD_ADD(201807,-2) | +----------------------+-----------------------+
| 201808 | 201805 | +----------------------+-----------------------+
24:PERIOD_DIFF(monthStart,monthEnd)
返回monthStart - monthEnd的間隔月數
mysql> SELECT PERIOD_DIFF(201807,201808),PERIOD_DIFF(201807,201806); +----------------------------+----------------------------+
| PERIOD_DIFF(201807,201808) | PERIOD_DIFF(201807,201806) | +----------------------------+----------------------------+
| -1 | 1 | +----------------------------+----------------------------+
25:ADDDATE(date,INTERVAL expr unit)
同 DATE_ADD()
26:SUBDATE(date,INTERVAL expr unit)
同 DATE_SUB()
27:SEC_TO_TIME(seconds)
把秒數轉換成時間
mysql> select SEC_TO_TIME(360); +------------------+
| SEC_TO_TIME(360) | +------------------+
| 00:06:00 | +------------------+
28:TIME_TO_SEC(time)
把時間轉化成秒數
mysql> select TIME_TO_SEC('12:10:00'); +-------------------------+
| TIME_TO_SEC('12:10:00') | +-------------------------+
| 43800 | +-------------------------+
29:STR_TO_DATE(date,format )
把字符串轉成format格式的日期時間
mysql> SELECT STR_TO_DATE('2018-08-08','%Y-%m-%d'); +--------------------------------------+
| STR_TO_DATE('2018-08-08','%Y-%m-%d') | +--------------------------------------+
| 2018-08-08 | +--------------------------------------+
30:ADDTIME(expr1,expr2)
把expr2加到expr1上
mysql> SELECT ADDTIME('2017-12-31 23:59:59','00:00:01'); +-------------------------------------------+
| ADDTIME('2017-12-31 23:59:59','00:00:01') | +-------------------------------------------+
| 2018-01-01 00:00:00 | +-------------------------------------------+
31:TIMESTAMP(expr), TIMESTAMP(expr1,expr2)
對於單個參數,該函數返回日期或日期時間表達式expr做爲一個datetime值。對於兩個參數,它將時間表達式expr2添加到日期或datetime表達式expr1,並將結果做爲一個datetime值返回。
mysql> SELECT TIMESTAMP('2018-01-01'),TIMESTAMP('2018-01-01','10:12:32'); +-------------------------+------------------------------------+
| TIMESTAMP('2018-01-01') | TIMESTAMP('2018-01-01','10:12:32') | +-------------------------+------------------------------------+
| 2018-01-01 00:00:00 | 2018-01-01 10:12:32 | +-------------------------+------------------------------------+
32:TIMESTAMPADD(unit,interval,datetime_expr)
將整數表達式間隔添加到日期或日期時間表達式datetime_expr。interval的單位由unit參數給出,它應該是如下值之一:微秒(微秒)、秒、分鐘、小時、天、星期、月、季度或年。
mysql> SELECT TIMESTAMPADD(year,3,'2018-01-01'),TIMESTAMPADD(day,32,'2018-01-01'); +-----------------------------------+-----------------------------------+
| TIMESTAMPADD(year,3,'2018-01-01') | TIMESTAMPADD(day,32,'2018-01-01') | +-----------------------------------+-----------------------------------+
| 2021-01-01 | 2018-02-02 | +-----------------------------------+-----------------------------------+
33:TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)
返回datetime_expr2−datetime_expr1,datetime_expr1和datetime_expr2日期或日期時間表達式。一個表達式能夠是日期,另外一個表達式能夠是日期時間;一個日期值被視爲一個datetime,在須要的時候有時間部分「00:00」。結果的單位(一個整數)由單位參數給出。
mysql> SELECT TIMESTAMPDIFF(month,'2018-01-01 10:00:00','2018-07-01'); +---------------------------------------------------------+
| TIMESTAMPDIFF(month,'2018-01-01 10:00:00','2018-07-01') | +---------------------------------------------------------+
| 5 | +---------------------------------------------------------+
34:TIME_FORMAT(time,format)
返回指定的時間格式
mysql> SELECT TIME_FORMAT('12:32:10','%H-%i-%s'); +------------------------------------+
| TIME_FORMAT('12:32:10','%H-%i-%s') | +------------------------------------+
| 12-32-10 | +------------------------------------+