关于mysql日期和时间函数的一些总结

通过做45题,才发现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                |

你可能感兴趣的:(关于mysql日期和时间函数的一些总结)