剛一開始肯定會有很多同學對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
喜歡就支持一下吧
相關推薦