通過做45題,才發(fā)現mysql中的日期和時間函數的豐富变过,特別記錄下,
1.now()/current_timestamp()返回當前的日期和時間
mysql> SELECT NOW();
| 2020-01-06 11:18:27 |
mysql> select current_timestamp();
| 2020-01-06 11:18:42 |
2.curdate()/current_date()? 返回當前日期
select curdate();
2020-01-06
select current_date();
| 2020-01-06
3.curtime()/current_time() 返回當前時間
select curtime();
| 11:25:56? |
mysql> select current_time();
| 11:26:08? ? ? |
4.UNIX_TIMESTAMP(date) 獲取日期的unix時間戳抡草,date默認當前日期時間
select unix_timestamp();
|? ? ? 1578284688
5.from_unixtime(時間戳) 獲取UNIX時間戳的日期時間值
select from_unixtime(1578284688);
| 2020-01-06 12:24:48
6.adddate(t,interval n type)觅赊,從t時間,往后加n年/季度/月/周/天/時/分/秒/微秒棍丐,subdate()函數误辑,從t開始,減n歌逢。
type:year/quarter/month/week/day/hour/minute/secode/microsecode
?默認情況下巾钉,adddate(t,n)從t時間,加n天秘案,
select adddate(now(),1);
| adddate(now(),1)? ? |
| 2020-01-07 12:45:03 |
select adddate(now(), interval 1 hour);
| 2020-01-06 14:05:49? ? ? ? ? ? |
7.date_add(t,interval n type)砰苍,和adddate()函數作用差不多
select date_add(now(),interval 1 year);
| 2021-01-06 12:47:04? ? ? ? ? ?? |
但沒有默認,date_add(now(),1),會報錯阱高,
8.addtime(t, n)赚导,從t時間,往后加n秒赤惊。
9.選取日期時間的各個部分:日期吼旧、時間、年未舟、季度圈暗、月、周裕膀、日员串、小時、分鐘昼扛、秒寸齐、微秒,
set @d:=now()
select date(@d)/time(@d)/year(@d)/quarter(@d)/month(@d)/week(@d)/day(@d)......
也可以使用EXTRACT(type FROM d),
select extract(day from @d);
|? ? ? ? ? ? ? ? ? ? 6
dayname(t) 字符串周幾
monthname(t) 字符串幾月
select dayname(@d);
| Monday? ? ? |
10.如果想得到日期t時本周周幾/本月第幾天/本年第幾天
dayofweek(t)/dayofmonth(t)/dayofyear(t),
dayofweek(t)日期 t 今天是星期幾渺鹦,1 星期日,2 星期一
mysql> select dayofweek(@d);
| dayofweek(@d) |
|? ? ? ? ? ? 2 |
11.datediff(day1,day2),計算相差天數毅厚,day1-day2
select datediff("2019-01-06","2019-01-02");
|? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 4
12.timediff(time1,time2),計算相差小時數迹恐,time1-time2
mysql> select timediff("14:09:27","16:09:27");
| -02:00:00
13.timestampdiff(type,datetime1卧斟,datetime2)殴边,兩個時間之差,datetime2-datetime1珍语,
type:可轉化為年或月或秒或....的單位
select timestampdiff(hour,"2019-01-02 16:09:27","2019-01-06 14:09:27");
|? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 94 |
14.date_format(t,表達式) 锤岸,按照表達式的樣式提取時間t
表達式,有很多板乙,可上網查詢
select date_format(@d,"%Y-%m-%d %H:%i:%S");
| 2020-01-06 13:01:26? ? ? ? ? ? ? ? |