mysql日期和時間

剛一開始肯定會有很多同學對mysql獲取時間不了解,今天我們就來詳細的講一下mysql的時間和日期,對于mysql時間和日期不了解的同學可以多看看哦~

一、日期時間獲取

1,1獲取當前本地的日期和時間

SELECT?  ????NOW(),?  ????CURRENT_TIMESTAMP(),?  ????LOCALTIME(),?  ????LOCALTIMESTAMP(),  ????SYSDATE();

上面5個函數都可以獲取當前本地時間,但SYSDATE有所不同。

SELECT?NOW(),?SLEEP(3),?NOW();

執行結果:

NOW()??????????????????sleep(3)?????NOW()  2017-11-09?17:21:09????0????????????2017-11-09?17:21:09

雖然sleep了3秒,但NOW()前后2次獲取到時間是一樣的,也就是說NOW()函數獲取的時間是在整個SQL語句開始執行時的時間,無論SQL語句中有多少個NOW()函數,獲取到的時間都是一樣的。

CURRENT_TIMESTAMP(),?LOCALTIME(),?LOCALTIMESTAMP()和NOW()函數一樣。

但SYSDATE不同,它獲取到的是SYSDATE()函數執行時的實時時間:

SELECT?SYSDATE(),?SLEEP(3),?SYSDATE();

執行結果:

SYSDATE()????????????sleep(3)???SYSDATE()  2017-11-09?17:25:05??0??????????2017-11-09?17:25:08

1.2、 獲取當前本地的日期

SELECT?  ????CURDATE(),?  ????CURRENT_DATE();

1.3、 獲取當前本地的時間

SELECT?  ????CURTIME(),?  ????CURRENT_TIME();

1.4、 獲取當前UTC日期和時間

SELECT?  ????UTC_TIMESTAMP();

1.5、 獲取當前UTC日期

SELECT?  ????UTC_DATE();

1.6、 獲取當前UTC時間

SELECT?  ????UTC_TIME();

1.7、獲取時間戳(自1970年經過的秒)

SELECT?UNIX_TIMESTAMP();??--?當前時間時間戳  SELECT?UNIX_TIMESTAMP('2017-11-09?12:30:00');??--?自1970年到2017-11-09?12:30:00經過的秒數

二、 時間操作

2.1、 從時間戳提取時間和日期

SET?@dt?=?'2008-09-10?07:15:30.123456';  SELECT?DATE(@dt);????????--?2008-09-10  SELECT?TIME(@dt);????????--?07:15:30.123456  SELECT?YEAR(@dt);????????--?2008  SELECT?QUARTER(@dt);?????--?3  SELECT?MONTH(@dt);???????--?9  SELECT?WEEK(@dt);????????--?36  SELECT?DAY(@dt);?????????--?10  SELECT?HOUR(@dt);????????--?7  SELECT?MINUTE(@dt);??????--?15  SELECT?SECOND(@dt);??????--?30  SELECT?MICROSECOND(@dt);?--?123456

2.2、 獲取某天在一周、一月、一年中所處位置

SET?@dt?=?'2017-11-09';  SELECT?DAYOFWEEK(@dt);???--?5???????星期日為0,5代表星期四  SELECT?DAYOFMONTH(@dt);??--?9???????一個月的第9天  SELECT?DAYOFYEAR(@dt);???--?313?????2017年的第313天

2.3、 獲取指定日期的最后一天

SELECT?LAST_DAY('2017-02-05');???--?2017-02-28

2.4. 時間加減

SET?@dt?=?"2017-11-09?17:10:20.0000001";  SELECT?DATE_ADD(@dt,?INTERVAL?1?DAY);????????--?加1天  SELECT?DATE_ADD(@dt,?INTERVAL?2?HOUR);???????--?加2小時  SELECT?DATE_ADD(@dt,?INTERVAL?1?MINUTE);?????--?加1分鐘  SELECT?DATE_ADD(@dt,?INTERVAL?1?SECOND);  SELECT?DATE_ADD(@dt,?INTERVAL?1?MICROSECOND);?--?加1微妙  SELECT?DATE_ADD(@dt,?INTERVAL?1?WEEK);????????--?加1周  SELECT?DATE_ADD(@dt,?INTERVAL?1?MONTH);  SELECT?DATE_ADD(@dt,?INTERVAL?1?QUARTER);?????--?加1個季度  SELECT?DATE_ADD(@dt,?INTERVAL?1?YEAR);  SELECT?DATE_ADD(@dt,?INTERVAL?-1?DAY);???????--?減1天

2.5. 兩個日期、時間加減

SELECT?DATEDIFF('2008-08-08',?'2008-08-01');??--?7  SELECT?DATEDIFF('2008-08-01',?'2008-08-08');??--?-7??第一個參數減去第二個參數
SELECT?TIMEDIFF('2008-08-08?08:08:08',?'2008-08-08?00:00:00');??--?08:08:08  SELECT?TIMEDIFF('00:00:00',?'08:08:08');????????????????????????--?-08:08:08

2.6. 時間格式化

SELECT?DATE_FORMAT('2008-08-08?22:23:00',?'%W?%M?%Y');??????--?Friday?August?2008  SELECT?DATE_FORMAT('2008-08-08?22:23:01',?'%Y%m%d%H%i%s');??--?20080808222301  SELECT?TIME_FORMAT('22:23:01',?'%H.%i.%s');?????????????????--?22.23.01

2.7. 秒計算

計算指定時間折合多少秒,如00:01:00表示1分鐘,等于60秒。  SELECT?TIME_TO_SEC('01:00:05');??--?3605  SELECT?SEC_TO_TIME(3605);????????--?'01:00:05'

以上就是 mysql日期和時間 的所有內容了,希望可以給同學們帶來新的認識和啟發吧

相關推薦:

時間戳

時間戳

時間戳

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊6 分享