獲取當(dāng)前日期和時(shí)間
SELECT
curDate(), //2021-01-01
current_Date(), //2021-01-01
current_time(), //15:00:20
curtime(), //15:00:20
current_timestamp(), // 2021-01-01 15:00:20
now(), // 2021-01-01 15:00:20
sysdate() , // 2021-01-01 15:00:20
localtime(), // 2021-01-01 15:00:20
localtimestamp(), // 2021-01-01 15:00:20
格式化
//按照表達(dá)式的格式顯示時(shí)間牙肝。
select DATE_FORMAT('2021-11-11 11:11:11','%Y-%m-%d %r') //2021-11-11 11:11:11 AM
select TIME_FORMAT('11:11:11','%r') //11:11:11 AM
select STR_TO_DATE("August 10 2017","%M %d %Y") //2017-08-10
時(shí)間提取
// 提取日期部分
SELECT DATE("2021-01-11 10:11:12"); -> 2021-01-11
SELECT YEAR("2021-01-11 10:11:12"); -> 2021
SELECT MONTH("2021-01-11 10:11:12"); -> 1
SELECT MONTHNAME("2021-01-11 10:11:12"); -> January
SELECT DAY("2021-01-11 10:11:12"); -> 11
SELECT DAYNAME("2021-01-11 10:11:12"); -> Monday
SELECT TIME("2021-01-11 10:11:12"); -> 10:11:12
SELECT HOUR("2021-01-11 10:11:12"); -> 10
SELECT MINUTE("2021-01-11 10:11:12"); -> 11
SELECT SECOND("2021-01-11 10:11:12"); -> 12
SELECT MICROSECOND("2021-06-20 09:34:00.000023"); //23
SELECT QUARTER("2021-01-11 10:11:12"); -> 1, 返回第幾季度,1到4嗤朴。
//可以使用提取函數(shù)
SELECT EXTRACT(TYPE FROM d)
TYPE的取值:
1配椭、MICROSECOND
2、SECOND
3雹姊、MINUTE
4股缸、HOUR
5、DAY
6吱雏、WEEK
7敦姻、MONTH
8、QUARTER
9歧杏、YEAR
10镰惦、SECOND_MICROSECOND
11、MINUTE_MICROSECOND
12犬绒、MINUTE_SECOND
13旺入、HOUR_MICROSECOND
14、HOUR_SECOND
15、HOUR_MINUTE
16茵瘾、DAY_MICROSECOND
17礼华、DAY_SECOND
18、DAY_MINUTE
19拗秘、DAY_HOUR
20圣絮、YEAR_MONTH
時(shí)間計(jì)算
// 計(jì)算日期之間相隔。日期和時(shí)間增加雕旨,減少扮匠。
SELECT DATEDIFF('2001-01-01','2001-02-02') // -32
SELECT ADDDATE("2021-01-11 10:11:12", INTERVAL 10 DAY); //2021-01-21 10:11:12
SELECT DATE_ADD("2021-01-11 10:11:12",INTERVAL 10 DAY); //2021-01-21 10:11:12
SELECT DATE_ADD("2021-01-11 10:11:12",INTERVAL 10 HOUR); //2021-01-11 20:11:12
SELECT DATE_ADD("2021-01-11 10:11:12",INTERVAL 10 MINUTE); //2021-01-11 10:21:12
SELECT DATE_ADD("2021-01-11 10:11:12",INTERVAL 10 SECOND); //2021-01-11 10:11:22
SELECT DATE_SUB("2021-01-11 10:11:12",INTERVAL 10 HOUR); //2021-01-11 00:11:12 同SUBDATE
SELECT DATE_SUB("2021-01-11 10:11:12",INTERVAL 10 MINUTE); //2021-01-11 10:01:12 同SUBDATE
SELECT DATE_SUB("2021-01-11 10:11:12",INTERVAL 10 SECOND); //2021-01-11 10:11:02 同SUBDATE
SELECT ADDTIME("2021-01-11 10:11:12", "2:10:5"); //2021-01-11 12:21:17
SELECT SUBTIME("2021-01-11 10:11:12", "2:10:5"); //2021-01-11 08:01:07
SELECT TIMEDIFF("2021-01-11 10:11:12", "2021-01-11 15:11:12") // -5:00:00
//TIMESTAMPDIFF(interval, datetime1,datetime2):計(jì)算兩個(gè)時(shí)間之前的間隔,interval可以是
//SECOND凡涩,MINUTE棒搜,HOUR,DAY突照,WEEK帮非,MONTH,QUARTER讹蘑, YEAR末盔。
//注意,TIMEDIFF和timestampdiff兩者的計(jì)算正好相反座慰。
SELECT timestampdiff(HOUR, "2021-01-11 10:11:12", "2021-01-11 15:11:12") // 5陨舱,單位為小時(shí)。
SELECT timestampdiff(HOUR, "2021-01-11 15:11:12", "2021-01-11 10:11:12") //- 5版仔,單位為小時(shí)游盲。
SELECT timestampdiff(SECOND, "2021-01-11 10:11:12", "2021-01-11 15:11:12") // 18000,單位為秒蛮粮。
//PERIOD_ADD(P, N):增加N個(gè)月到周期P益缎。P的格式為YYYYMM或者YYMM。
SELECT PERIOD_ADD(201703, 5) //201708
//PERIOD_DIFF(period1,period2) 返回兩個(gè)時(shí)段之間的月份差值
SELECT PERIOD_DIFF(201710,201803) // -5
//計(jì)算出某個(gè)時(shí)間
//返回該日期當(dāng)月的最后一天然想。
SELECT LAST_DAY("2021-01-11 "); //2021-01-31 莺奔。
// 返回0000年1月1日開始那天后的日期
SELECT FROM_DAYS(666666); // 1825-04-09
//計(jì)算日期距離0000年1月1日的天數(shù)
SELECT TO_DAYS("1825-04-09"); // 666666
獲取時(shí)間位置
SELECT DAYOFMONTH("2021-01-11 10:11:12"); //11,計(jì)算日期 d 是本月的第幾天
SELECT DAYOFWEEK("2021-01-11 10:11:12"); //2, 今天是星期幾变泄,1 星期日令哟,2 星期一,以此類推
SELECT DAYOFYEAR("2021-05-11 10:11:12"); //131, 計(jì)算日期 d 是本年的第幾天
SELECT WEEK("2021-01-11 10:11:12") //2 WEEK(d)計(jì)算日期 d 是本年的第幾個(gè)星期妨蛹,范圍是 0 到 53
SELECT WEEKOFYEAR("2021-01-11 10:11:12") //2 WEEK(d)計(jì)算日期 d 是本年的第幾個(gè)星期屏富,范圍是 0 到 53
//YEARWEEK(datae,mode)返回年份以及第幾周(0到53)
SELECT YEARWEEK("2021-01-01") //202052
SELECT YEARWEEK("2021-01-02") //202101
組合時(shí)間
select MAKEDATE(2021,40) //2021-02-09,MAKEDATE(year, day-of-year)
select MAKETIME(10, 11, 12); // 10:11:12,MAKETIME(hour, minute, second)
單位轉(zhuǎn)化
//TIME_TO_SEC(t):時(shí)間轉(zhuǎn)化為秒
SELECT SEC_TO_TIME(4320) //01:12:00
//SEC_TO_TIME(s):秒轉(zhuǎn)化為時(shí)分秒的格式
SELECT SEC_TO_TIME(01:12:30) //4350