mysql的 DATE_SUB()&EXTRACT() 函数及应用

发布时间:2021-01-20编辑:脚本学堂
mysql的 DATE_SUB()&EXTRACT() 函数及应用,有需要的朋友可以参考下。定义和用法 DATE_SUB() 函数从日期减去指定的时间间隔。

mysql的 DATE_SUB()&EXTRACT() 函数及应用,有需要的朋友可以参考下。

DATE_SUB()
定义和用法
DATE_SUB() 函数从日期减去指定的时间间隔

语法
DATE_SUB(date,INTERVAL expr type)

例子:
 

复制代码 代码如下:
select date_sub(now(),interval 7 DAY);
+--------------------------------+
| date_sub(now(),interval 7 DAY) |
+--------------------------------+
| 2012-10-11 14:40:27 |
+--------------------------------+
1 row in set (0.02 sec)

EXTRACT()
定义和用法
EXTRACT() 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。

语法
EXTRACT(unit FROM date)

例子:
 

复制代码 代码如下:
select now();
+---------------------+
| now() |
+---------------------+
| 2012-10-18 15:57:25 |
+---------------------+
select extract(day from now());
+-------------------------+
| extract(day from now()) |
+-------------------------+
| 18 |
+-------------------------+
select extract(month from now());
+---------------------------+
| extract(month from now()) |
+---------------------------+
| 10 |
+---------------------------+
>select extract(year from now());
+--------------------------+
| extract(year from now()) |
+--------------------------+
| 2012 |
+--------------------------+

将DATE_SUB()&EXTRACT() 函数结合使用:
 

复制代码 代码如下:

----上个月的第一天:
select date_sub(date_sub(date_format(now(),'%y-%m-%d'),interval extract(
day from now())-1 day),interval 1 month)

----上个月的最后一天:
select date_format(date_sub(now(),interval extract(day from now()) day),'%y-%m-%d');