mysql日期與時(shí)間
發(fā)表時(shí)間:2023-07-16 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]剛一開始肯定會(huì)有很多同學(xué)對(duì)mysql獲取時(shí)間不了解,今天我們就來詳細(xì)的講一下mysql的時(shí)間和日期,對(duì)于mysql時(shí)間和日期不了解的同學(xué)可以多看看哦~一、日期時(shí)間獲取1,1獲取當(dāng)前本地的日期和時(shí)間S...
剛一開始肯定會(huì)有很多同學(xué)對(duì)
mysql獲取時(shí)間不了解,今天我們就來詳細(xì)的講一下
mysql的時(shí)間和日期,對(duì)于
mysql時(shí)間和日期不了解的同學(xué)可以多看看哦~
一、日期時(shí)間獲取
1,1獲取當(dāng)前本地的日期和時(shí)間
SELECT
NOW(),
CURRENT_TIMESTAMP(),
LOCALTIME(),
LOCALTIMESTAMP(),
SYSDATE();
上面5個(gè)函數(shù)都可以獲取當(dāng)前本地時(shí)間,但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次獲取到時(shí)間是一樣的,也就是說NOW()函數(shù)獲取的時(shí)間是在整個(gè)SQL語句開始執(zhí)行時(shí)的時(shí)間,無論SQL語句中有多少個(gè)NOW()函數(shù),獲取到的時(shí)間都是一樣的。
CURRENT_TIMESTAMP(), LOCALTIME(), LOCALTIMESTAMP()和NOW()函數(shù)一樣。
但SYSDATE不同,它獲取到的是SYSDATE()函數(shù)執(zhí)行時(shí)的實(shí)時(shí)時(shí)間:
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)前本地的時(shí)間
SELECT
CURTIME(),
CURRENT_TIME();
1.4、 獲取當(dāng)前UTC日期和時(shí)間
SELECT
UTC_TIMESTAMP();
1.5、 獲取當(dāng)前UTC日期
SELECT
UTC_DATE();
1.6、 獲取當(dāng)前UTC時(shí)間
SELECT
UTC_TIME();
1.7、獲取時(shí)間戳(自1970年經(jīng)過的秒)
SELECT UNIX_TIMESTAMP(); -- 當(dāng)前時(shí)間時(shí)間戳
SELECT UNIX_TIMESTAMP('2017-11-09 12:30:00'); -- 自1970年到2017-11-09 12:30:00經(jīng)過的秒數(shù)
二、 時(shí)間操作
2.1、 從字符串提取時(shí)間和日期
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 一個(gè)月的第9天
SELECT DAYOFYEAR(@dt); -- 313 2017年的第313天
2.3、 獲取指定日期的最后一天
SELECT LAST_DAY('2017-02-05'); -- 2017-02-28
2.4. 時(shí)間加減
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小時(shí)
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個(gè)季度
SELECT DATE_ADD(@dt, INTERVAL 1 YEAR);
SELECT DATE_ADD(@dt, INTERVAL -1 DAY); -- 減1天
2.5. 兩個(gè)日期、時(shí)間加減
SELECT DATEDIFF('2008-08-08', '2008-08-01'); -- 7
SELECT DATEDIFF('2008-08-01', '2008-08-08'); -- -7 第一個(gè)參數(shù)減去第二個(gè)參數(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. 時(shí)間格式化
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. 秒計(jì)算
計(jì)算指定時(shí)間折合多少秒,如00:01:00表示1分鐘,等于60秒。
SELECT TIME_TO_SEC('01:00:05'); -- 3605
SELECT SEC_TO_TIME(3605); -- '01:00:05'
以上就是 mysql日期和時(shí)間 的所有內(nèi)容了,希望可以給同學(xué)們帶來新的認(rèn)識(shí)和啟發(fā)吧
相關(guān)推薦:
MySQL查詢時(shí)間基礎(chǔ)教程
MySQL時(shí)間日期查詢方法與函數(shù)
mysql時(shí)間函數(shù)使用 mysql數(shù)據(jù)庫(kù)差異比較的PHP代碼
以上就是mysql日期和時(shí)間的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!
學(xué)習(xí)教程快速掌握從入門到精通的SQL知識(shí)。