溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

獲取mysql日期和時間的操作方法

發(fā)布時間:2020-05-18 16:17:13 來源:PHP中文網(wǎng) 閱讀:303 作者:三月 欄目:MySQL數(shù)據(jù)庫

下文主要給大家?guī)慝@取mysql日期和時間的操作方法,希望這些內(nèi)容能夠帶給大家實際用處,這也是我編輯獲取mysql日期和時間的操作方法這篇文章的主要目的。好了,廢話不多說,大家直接看下文吧。                                                          

一、日期時間獲取

1,1獲取當(dāng)前本地的日期和時間

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

上面5個函數(shù)都可以獲取當(dāng)前本地時間,但SYSDATE有所不同。

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

執(zhí)行結(jié)果:

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

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

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

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

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

執(zhí)行結(jié)果:

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

1.2、 獲取當(dāng)前本地的日期

SELECT 
    CURDATE(), 
    CURRENT_DATE();

1.3、 獲取當(dāng)前本地的時間

SELECT 
    CURTIME(), 
    CURRENT_TIME();

1.4、 獲取當(dāng)前UTC日期和時間

SELECT 
    UTC_TIMESTAMP();

1.5、 獲取當(dāng)前UTC日期

SELECT 
    UTC_DATE();

1.6、 獲取當(dāng)前UTC時間

SELECT 
    UTC_TIME();

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

SELECT UNIX_TIMESTAMP();  -- 當(dāng)前時間時間戳
SELECT UNIX_TIMESTAMP('2017-11-09 12:30:00');  -- 自1970年到2017-11-09 12:30:00經(jīng)過的秒數(shù)

二、 時間操作


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  第一個參數(shù)減去第二個參數(shù)
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'

對于以上關(guān)于獲取mysql日期和時間的操作方法,大家是不是覺得非常有幫助。如果需要了解更多內(nèi)容,請繼續(xù)關(guān)注我們的行業(yè)資訊,相信你會喜歡上這些內(nèi)容的。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI