mysql interval 3 day_Mysql之INTERVAL与DATE_SUB与EXTRACT函数的使用

1. INTERVAL

INTERVAL代表的是时间间隔

MySQL中的时间间隔类型有如下几种:

177646711_1_20191210110511829.png

1.1 利用INTERVAL做时间的加减法

示例:

加法: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 ;

结果:2018-11-01 00:00:00

2. EXTRACT:用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等

格式:EXTRACT(unit FROM date)

unit取值表:

177646711_2_2019121011051232.png

示例1:

SELECT

EXTRACT(YEAR FROM NOW()) AS years ,

EXTRACT(MONTH FROM NOW()) AS months,

EXTRACT(DAY FROM NOW()) AS days;

结果:

177646711_3_20191210110512407.png

示例2:

SELECT NOW(),EXTRACT(DAY_SECOND FROM NOW());

结果:

177646711_4_20191210110512563.png

3. DATE_SUB:从日期减去指定的时间间隔

DATE_SUB有个相反的函数DATE_ADD(),但因为业务上用DATE_SUB

的情况多,而且DATE_SUB也能实现增加时间间隔的功能,所以我大多用

DATE_SUB.

格式: DATE_SUB(日期, 时间间隔, 时间间隔类型type)

时间间隔即interval函数

间隔类型type可取:

177646711_5_20191210110512813.png

示例1:

SELECT DATE_SUB('2018-11-11 12:00',INTERVAL '0 12' DAY_HOUR);

结果:

177646711_6_20191210110512907.png

示例2:

SELECT DATE_SUB('2018-11-11 12:00',INTERVAL '1 2 3 4' DAY_SECOND);

结果:

177646711_7_201912101105131.png

示例3:

SELECT DATE_SUB('2018-11-11 12:00',INTERVAL '1 2' YEAR_MONTH);

结果:

177646711_8_2019121011051394.png

4 复合函数实现查询上个月月末月初日期

现在3个函数都了解了,怎么实现查询上个月的月初和月末的日期呢?

4.1 上个月月末

1.首先用 函数 查询出来这个月过了几天

select EXTRACT(DAY FROM NOW()) DAY

2.用 DATE_SUB减去这时间间隔

SELECT

DATE_SUB(DATE_FORMAT(NOW(), '%y-%m-%d'),

INTERVAL EXTRACT(DAY FROM NOW()) DAY);

结果:

177646711_9_20191210110513266.png

4.2 上个月月初

1.算出这个月过了几天

select EXTRACT(DAY FROM NOW()) DAY;

写此文的时间为11月7日,这个月过了7天,如果11月7日减去6天的话,就是月

初,所以

select EXTRACT(DAY FROM NOW())-1 DAY;

6天就是距离月初的时间间隔

2.用date_sub得到本月月初时间

SELECT

DATE_SUB(DATE_FORMAT(NOW(), '%y-%m-%d'),

INTERVAL EXTRACT(DAY FROM NOW()) - 1 DAY);

177646711_10_20191210110513360.png

3.继续用date_sub将上述结果,减去一个月

SELECT DATE_SUB(DATE_SUB(DATE_FORMAT(NOW(), '%y-%m-%d'),INTERVAL EXTRACT(DAY FROM NOW()) - 1 DAY),INTERVAL 1 MONTH);

结果:

177646711_11_20191210110513579.png

来源:https://www.icode9.com/content-2-593051.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/277578.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

0727日志

为什么80%的码农都做不了架构师?>>> c端线上地址 http://x.diandanme.com/fe/?d183#/ 什么时候来需求,我做好准备了吗? eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC94LmRpYW5kYW5tZS5jb21cL2FwaVwvd2VjaGF0XC…

Python基础学习总结__Day3

一、集合 1.特性:无序且天生去重,格式为{} 2.作用: (1)去重 (2)关系测试 3.可调用函数(常见对列表操作) (1)取…

day8网络编程,面向对象1

一.只是回顾 1.导入模块的顺序,首先从当前目录下找,再从环境变量里面找,使用"sys.path.insert(0,需要导入的环境变量)"加入需要导入文件的环境变量; 2.如果不同项目中有相同的文件,需要导入文件,需要将非当前项目中右键添加的环境变量取消,将当前的环境变量添加上去;…

ES语法及-IK分词器

{"query": {"query_string": {"default_field": "title",//全文搜索"query": "器大"}} } "id":1, "title":"Elasticsearch是一个基于Lucene的搜索服务器", "content":&q…

python多任务编程_python线程的多任务编程

多任务多任务介绍对于人来说,一边听歌,一边跳舞就是多任务。对于电脑,简单的说,同一时间执行多个程序处理数据叫做多任务多任务理解单核CPU单核cpu在处理多任务的时候是根据时间片轮转的方式进行的,比如执行QQ1us&…

简单分析Guava中RateLimiter中的令牌桶算法的实现

为什么80%的码农都做不了架构师?>>> 令牌桶算法是网络流量整形(Traffic Shaping)和速率限制(Rate Limiting)中最常使用的一种算法。典型情况下,令牌桶算法用来控制发送到网络上的数据的数目&am…

gcc oracle mysql_Linux下C语言访问Oracle数据库Demo

前提条件1. Linux环境已经存在,安装好了Oracle本demo 运行环境本地环境 RedHat LINUX AS 4 ,ORACLE 10G本地数据库sid orcl,ip:127.0.0.1,用户名:kingbi,密码:kingbi,表dsd_test. 显示表dsd_test 的所有记录.步骤:(1) 创建表 …

炼数成金数据分析课程---16、机器学习中的分类算法(交叉内容,后面要重点看)...

炼数成金数据分析课程---16、机器学习中的分类算法(交叉内容,后面要重点看) 一、总结 一句话总结: 大纲实例快速学习法 主要讲解常用分类算法(如Knn、决策树、贝叶斯分类器等)的原理及python代码实现 1、什么是分类? 分…

NFS配置详解

1、NFS服务介绍1.1 什么是NFS?NFS是Network File System的缩写。中文意思是网络文件系统。它的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或者目录。NFS客户端(一般为应用服务器,例如web&…

idea用法

更新gradle的依赖后,刷新项目引入jar包的方法: view--Tool Buttons 在右侧 Gradle 点刷新 转载于:https://www.cnblogs.com/z360519549/p/10994897.html

免费下载!5本阿里技术好书,带你看更大的世界

共享、开源是互联网技术发展的重要精神。在过去,25000多万名阿里工程师,撰写了一系列精品技术丛书,从算法、研发到职业人生随笔,应有尽有。目前该系列丛书已全部开放下载,供技术人免费阅读。 今天小编整理了其中的五本…

乌班图系统16.04安装

本例jiyu基于Ubuntu16.04 64位版本为例进行安装,安装的方式有多种,本文使用光盘进行安装安装前应准备好,将Ubuntu的镜像文件刻成光盘,然后将光盘放入光驱,并设置服务器从光盘启动,开机到如下界面:按Enter键到下一步,如…

使用maven构建项目候,jar包错误的解决办法

1、删除架包,重新下载,右键项目点击"run as"中的“maven clean”,然后再maven中找到Update Project 2、可以在代码中,把鼠标放到报错的架包上 点击划红线部分,进行安装 转载于:https://www.cnblogs.com/qingqian/p/1099…

模拟输入(ADC-A0)

ESP8266具有内置的10位ADC,只有一个ADC通道(A0引脚),即只有一个ADC输入引脚可读取来自外部器件的模拟电压 ESP8266上的ADC通道和芯片供电电压复用,也就是说我们可以将其设置为测量系统电压或者外部电压 测量外部电压: analogRead(…

个人作业-Alpha项目测试

这个作业属于哪个课程https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2作业地址https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2/homework/3340团队名称脑阔疼https://www.cnblogs.com/chaserFF/p/10994338.html这个作业的目标完成班级项目互评…

Jenkins的Pipeline脚本在美团餐饮SaaS中的实践

2019独角兽企业重金招聘Python工程师标准>>> 一、背景 在日常开发中,我们经常会有发布需求,而且还会遇到各种环境,比如:线上环境(Online),模拟环境(Staging)&…

【springboot+easypoi】一行代码搞定excel导入导出

原文:https://www.jianshu.com/p/5d67fb720ece 开发中经常会遇到excel的处理,导入导出解析等等,java中比较流行的用poi,但是每次都要写大段工具类来搞定这事儿,此处推荐一个别人造好的轮子【easypoi】,下面…

用java编写一个计算器_用java程序编写一个计算器

展开全部给你一个参考,希望不62616964757a686964616fe58685e5aeb931333330343261要被百度吞了当晚餐import java.awt.BorderLayout;import java.awt.GridLayout;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.text.DecimalFor…

jquery中的ajax方法(备忘)

参考:https://www.cnblogs.com/tylerdonet/p/3520862.html w3school:http://www.w3school.com.cn/jquery/ajax_ajax.asp 1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址。 2.type: 要求为String类型的参数&…

第4次作业

转载于:https://www.cnblogs.com/wzh2920330283/p/11027254.html