INTERVAL代表的是时间间隔MySQL中的时间间隔类型有如下几种:
示例:
加法:SQL>SELECT DATE '2018-11-01' + INTERVAL '10 11' DAY_HOUR;结果:2018-11-11 11:00:00 减法:SQL> select date '2018-11-11 11:00:00' -INTERVAL '10 11' DAY_HOUR ;
格式:EXTRACT(unit FROM date)
unit取值表:
示例1:
SELECT EXTRACT(YEAR FROM NOW()) AS years , EXTRACT(MONTH FROM NOW()) AS months, EXTRACT(DAY FROM NOW()) AS days;
结果:
SELECT NOW(),EXTRACT(DAY_SECOND FROM NOW());
DATE_SUB有个相反的函数DATE_ADD(),但因为业务上用DATE_SUB的情况多,而且DATE_SUB也能实现增加时间间隔的功能,所以我大多用DATE_SUB.
格式: DATE_SUB(日期, 时间间隔, 时间间隔类型type)
时间间隔即interval函数间隔类型type可取:
SELECT DATE_SUB('2018-11-11 12:00',INTERVAL '0 12' DAY_HOUR);
SELECT DATE_SUB('2018-11-11 12:00',INTERVAL '1 2 3 4' DAY_SECOND);
SELECT DATE_SUB('2018-11-11 12:00',INTERVAL '1 2' YEAR_MONTH);
①首先用 函数 查询出来这个月过了几天select EXTRACT(DAY FROM NOW()) DAY
SELECT DATE_SUB(DATE_FORMAT(NOW(), '%y-%m-%d'), INTERVAL EXTRACT(DAY FROM NOW()) DAY);
①算出这个月过了几天
select EXTRACT(DAY FROM NOW()) DAY;
select EXTRACT(DAY FROM NOW())-1 DAY;
SELECT DATE_SUB(DATE_FORMAT(NOW(), '%y-%m-%d'), INTERVAL EXTRACT(DAY FROM NOW()) - 1 DAY);
SELECT DATE_SUB(DATE_SUB(DATE_FORMAT(NOW(), '%y-%m-%d'),INTERVAL EXTRACT(DAY FROM NOW()) - 1 DAY),INTERVAL 1 MONTH);
以上就是土嘎嘎小编为大家整理的Mysql之INTERVAL与DATE_SUB与EXTRACT函数的使用相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!