首頁 > 資料庫 > mysql教程 > mysql日期和時間

mysql日期和時間

韦小宝
發布: 2017-12-04 09:36:51
原創
1955 人瀏覽過

剛一開始一定會有很多同學對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日期和時間的所有內容了,希望可以給同學們帶來新的認識和啟發吧

相關推薦:

#MySQL查詢時間基礎教學

MySQL時間日期查詢方法與函數

mysql時間函數使用mysql資料庫差異比較的PHP程式碼

以上是mysql日期和時間的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板