dual mysql 获取序列_MySQL获取周、月、天日期,生成排序号

常用MySQL生成时间序列

--生成最近七天的日期,不包括当天

SELECT @cdate := date_add(@cdate, interval - 1 day) as date FROM(SELECT @cdate := date_add(date_sub(CURDATE(),interval 1 DAY), interval + 1 DAY) from resource_publish) t0 LIMIT 7;

2020-06-16

2020-06-15

2020-06-14

2020-06-13

2020-06-12

2020-06-11

2020-06-10

--生成最近七天的日期,包括当天

SELECT @cdate := date_add(@cdate, interval - 1 day) as date_str FROM(SELECT @cdate := date_add(CURDATE(), interval + 1 DAY) from resource_publish) t0 LIMIT 7;

2020-06-17

2020-06-16

2020-06-15

2020-06-14

2020-06-13

2020-06-12

2020-06-11

--生成最近七天的日期,包括当天

SELECT @cdate := date_add(@cdate, interval - 1 day) as date_str FROM(SELECT @cdate := date_add('202006017', interval + 1 DAY) from resource_publish) t0 LIMIT 7;

2020-06-17

2020-06-16

2020-06-15

2020-06-14

2020-06-13

2020-06-12

2020-06-11

--生成十二天每月的日期,包括当月

SELECT @cdate := date_add(@cdate, interval - 1 MONTH) as date_str FROM(SELECT @cdate := date_add(CURDATE(), interval + 1 MONTH) from resource_publish) t0 LIMIT 12;

2020-06-17

2020-05-17

2020-04-17

2020-03-17

2020-02-17

2020-01-17

2019-12-17

2019-11-17

2019-10-17

2019-09-17

2019-08-17

2019-07-17

-- 查询最近七个月每月日期

SELECT @cdate := date_add(@cdate, interval - 1 MONTH) as daytime FROM(SELECT @cdate := date_add(date_sub(CURDATE(),interval 1 MONTH), interval + 1 MONTH) from test_tb) t0 LIMIT 7;

2020-05-17

2020-04-17

2020-03-17

2020-02-17

2020-01-17

2019-12-17

2019-11-17

-- 查询最近六个月每月月末日期

SELECT @lastDay := last_day( date_add(@lastDay,interval 1 month )) lastDays from (SELECT @lastDay := date_add(curdate(),interval -6 month) from test_tb limit 6) a;

2020-01-31

2020-02-29

2020-03-31

2020-04-30

2020-05-31

2020-06-30

-- 查询最近七月的月份

SELECT date_format(@lastDay := last_day( date_add(@lastDay,interval 1 month ) ) ,'%Y-%m' ) lastDays from (SELECT @lastDay := date_add(curdate(),interval -6 month) from test_tb limit 6) a;

2020-01

2020-02

2020-03

2020-04

2020-05

2020-06

-- 获取当年所有月份

SELECT date_format(@lastDay := last_day(date_add(@lastDay,interval 1 month)) ,'%Y-%m') lastDays from (SELECT @lastDay := date_add(curdate(),interval -MONTH(curdate()) month) from test_tb LIMIT 12) a;

-- 获取当年所有月份

SELECT CASE WHEN length(mon) = 1 THEN concat(LEFT (CURRENT_DATE, 5),'0',mon)  ELSE concat(LEFT(CURRENT_DATE, 5), mon) END months FROM (SELECT @m :=@m + 1 mon FROM test_tb,(SELECT @m := 0) a) aa LIMIT 12;

2020-01

2020-02

2020-03

2020-04

2020-05

2020-06

2020-07

2020-08

2020-09

2020-10

2020-11

2020-12

--生成当年十二个月

SELECT CONCAT(YEAR(CURRENT_DATE()),'-01') AS date UNION

SELECT CONCAT(YEAR(CURRENT_DATE()),'-02') AS date UNION

SELECT CONCAT(YEAR(CURRENT_DATE()),'-03') AS date UNION

SELECT CONCAT(YEAR(CURRENT_DATE()),'-04') AS date UNION

SELECT CONCAT(YEAR(CURRENT_DATE()),'-05') AS date UNION

SELECT CONCAT(YEAR(CURRENT_DATE()),'-06') AS date UNION

SELECT CONCAT(YEAR(CURRENT_DATE()),'-07') AS date UNION

SELECT CONCAT(YEAR(CURRENT_DATE()),'-08') AS date UNION

SELECT CONCAT(YEAR(CURRENT_DATE()),'-09') AS date UNION

SELECT CONCAT(YEAR(CURRENT_DATE()),'-10') AS date UNION

SELECT CONCAT(YEAR(CURRENT_DATE()),'-11') AS date UNION

SELECT CONCAT(YEAR(CURRENT_DATE()),'-12') AS date

-- 获取当年第一个月份

SELECT date_format(date_sub(date_sub(curdate(),interval day(curdate()) - 1 day),interval MONTH(CURDATE())-1 month),'%Y-%m');

2020-01

-- 获取时间字符串第一个月份

SELECT date_format(date_sub(concat('2020-06', '-01'), interval MONTH(concat('2020-06', '-01'))-1 month), '%Y-%m')

-- 上月月份

select extract(YEAR_MONTH from date_add(NOW(), interval -1 month));      -- 202005

-- 上年月份

select extract(YEAR_MONTH from date_add(NOW(), interval -1 year));       --201906

-- 查看最近两周内的工作日

SELECT * FROM(SELECT daystr,WEEKDAY(daystr) AS wd FROM(SELECT @cdate := date_add(@cdate, interval - 1 day) as daystr FROM(SELECT @cdate := date_add(date_sub(CURDATE(),interval 1 DAY), interval + 1 DAY) from tb_name ) t0 LIMIT 14) ds) aa WHERE wd!='5' AND wd!='6';

1 2020-06-16

0 2020-06-15

4 2020-06-12

3 2020-06-11

2 2020-06-10

1 2020-06-09

0 2020-06-08

4 2020-06-05

3 2020-06-04

2 2020-06-03

set @rownum=0; select @rownum:=@rownum+1 as rownum;select (@i:=@i+1) as rownum FROM (select @i:=0) as rn;      -- 和其他列组合自动生成序号

select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 35 DAY);      -- 获取六周前的周一:2020-05-11

select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 0 DAY);      -- 获取当前周所在的周一:2020-06-15

select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) - 6 DAY);    -- 获取当前周所在的周日:2020-06-021

SELECT date_add(DATE_ADD(curdate(),interval -day(curdate())+1 day),interval -6 month);   -- 获取六个月前第一天:2019-12-01

SELECT DATE_ADD(curdate(),interval -day(curdate())+1 day);        -- 获取当月第一天:2020-06-01

WEEK(date[,mode])函数

此函数返回日期的周数。双参数的形式WEEK()允许你指定星期是否开始于周日或周一,以及是否返回值应在范围从0到53或从1到53。 如果省略了mode参数,系统default_week_format变量的值被使用。

SELECT WEEK(‘2020-06-17’,1);    --当前日期是第:25 周

WEEKOFYEAR(date)

返回日期用数字表示的范围是从1到53的日历周。WEEKOFYEAR()是一个兼容性函数,它等效于WEEK(date,3)。

SELECT WEEKOFYEAR('2020-06-17');    --当前日期是第:25 周

YEARWEEK

YEARWEEK 是获取年份和周数的一个函数,函数形式为 YEARWEEK(date[,mode])

SELECT YEARWEEK('2020-06-17');      -- 当前日期是第:202024

date_format(date,'%u')

%U周 (01-53) 星期日是一周的第一天

%u周 (01-53) 星期一是一周的第一天

DAYOFWEEK

DAYOFWEEK 转换日期为周几的函数,1 = Sunday, 2 = Monday, 3 = Tuesday, 4 = Wednesday, 5 = Thursday, 6 = Friday, 7 = Saturday

select DAYOFWEEK('2020-06-17');      -- 周三为 4

SELECT dayofweek(now());         -- 查看当日是周几

--当年第一天: 2020-01-01

select date_sub(curdate(),interval dayofyear(now())-1 day);

--当年第一天: 2020-01-01

select concat(date_format(last_day(makedate(extract(year from curdate()),1) + interval quarter(curdate())*3-6 month),'%y-%m-'),'01');

--当年最后一天: 2020-12-31

SELECT concat(YEAR(now()),'-12-31');

--当前week的第一天: 2020-06-14

select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 1 DAY);

--当前week的最后一天: 2020-06-20

select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) - 5 DAY);

--前一week的第一天: 2020-06-07

select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 8 DAY);

--前一week的最后一天: 2020-06-13

select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 2 DAY);

--前两week的第一天: 2020-05-31

select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 15 DAY);

--前两week的最后一天: 2020-06-06

select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 9 DAY);

select curdate();                --获取当前日期

select date_sub(curdate(),interval 1 day);     -- 获取前一天日期

select last_day(curdate());             --获取当月最后一天:2020-06-30

select last_day(now());              -- 当前月的最后一天:2020-06-30

-- 当前月的最后一天:2020-06-30

select last_day(makedate(extract(year from curdate()),1) + interval quarter(curdate())*3-1 month);

select DATE_ADD(curdate(),interval -day(curdate())+1 day);          --获取本月第一天:2020-06-01

select date_add(curdate(), interval - day(curdate()) + 1 day);         --获取本月第一天:2020-06-01

select concat(date_format(last_day(now()),'%y-%m-'),'01');           --当前月的第一天: 2020-06-01

select extract(YEAR_MONTH from date_add(NOW(), interval -1 month));    --获取上月月份:202005

-- 上月第一天:2020-05-01

select date_sub(date_sub(date_format(now(),'%Y-%m-%d'),interval extract(day from now())-1 day),interval 1 month);

SELECT date_sub(date_sub(curdate(),interval day(curdate()) - 1 day),interval 1 month);

--上月第一天:2020-05-01

select concat(date_format(last_day(now() - interval 1 month),'%y-%m-'),'01');

-- 获取上月月份:2020-05

SELECT date_format(date_sub(date_sub(curdate(),interval day(curdate()) - 1 day),interval 1 month),'%Y-%m');

select date_format(date_add(curdate(),interval -1 month),'%Y-%m');

--获取当年1月份:2020-01

select date_format(date_sub(date_sub(curdate(),interval day(curdate()) - 1 day),interval month(curdate())-1 month),'%Y-%m');

-- 获取下个月的第一天:2020-07-01

select date_add(curdate()-day(curdate())+1,interval 1 month);

--获取当前月的天数:30

select DATEDIFF(date_add(curdate()-day(curdate())+1,interval 1 month ),DATE_ADD(curdate(),interval -day(curdate())+1 day)) from dual;

--上两月第一天: 2020-04-01

select concat(date_format(last_day(now() - interval 2 month),'%y-%m-'),'01');

--上两月第一天: 2020-04-01

select concat(date_format(last_day(makedate(extract(year from curdate()),1) + interval quarter(curdate())*3-3 month),'%Y-%m-'),'01');

--上月最后一天: 2020-05-31

select last_day(now() - interval 1 month);

--上两月最后一天: 2020-04-30

select last_day(now() - interval 2 month);

--上两月最后一天: 2020-04-30

select last_day(makedate(extract(year from curdate()),1) + interval quarter(curdate())*3-3 month);

--上两月最后一天: 2020-04-30

select last_day(makedate(extract(year from curdate()),1) + interval quarter(curdate())*3-3 month);

-- MySQL 查询百分占比三种方式:1.字段里嵌套子查询统计总数,2.嵌套临时表统计总数,3.设置临时变量统计总数

set @sum=(select sum(ct_col) from test_tb);

select ct_col,round((ct_col/@sum*100),2) as ct from test_tb group by ct_col order by ct desc;

MySQL时间格式化:  %Y-%m-%d %H:%i:%s.%f

SELECT DATE_FORMAT('2020-06-17 15:23:16.463','%Y-%m-%d %H:%i:%s.%f')

2020-06-17 15:23:16.463000

MySQL判空函数:

IFNULL(expr,expr)       处理如果字段为空,返回默认值,sum是统计求和,

IFNULL(SUM(expr1),expr2)  是统计求和之后为空返回默认值

SUM(IFNULL(expr1,expr2))  是判断字段为空返回默认值再求和

作者:Jason Zeng 于 2020-06-17

博客:http://www.cnblogs.com/zengming/

GItHub:https://github.com/lovelifeming

严正声明:

1.由于本博客部分资源来自互联网,版权均归原作者所有。转载的目的是用于学术交流与讨论学习,将不对任何资源负法律责任。

2.若无意中侵犯到您的版权利益,请来信联系我,我会在收到信息后会尽快给予处理!

3.所有资源内容仅供学习交流之用,请勿用作商业用途,谢谢。

4.如有转发请注明出处,来源于http://www.cnblogs.com/zengming/,谢谢合作。

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

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

相关文章

建筑电气工程设计常用图形和文字符号_怎么看懂建筑电气工程图?用最直白方式,教你基础识图!超级详细...

​如何看懂建筑电气工程图?我们可能知道AutoCAD,也可能知道在迅捷CAD图库下载建筑电气工程图纸,还可能会使用CAD绘制简单的图形对象。但是,当我们需要进行建筑识图的时候,你也可能连里面的经典图纸符号都不认识。如何看…

Android仿探探卡片拖拽,Vue 仿探探拖拽卡片的效果

原标题:Vue 仿探探拖拽卡片的效果已更新Vue3版,请给前端大全发送关键字vue3仿探探获取Vue3版类似 Tinder 和 探探 的卡片效果的组件,社区中已经非常多了。我这一版除了可以实现和他们一样的效果外。还增加了 飞卡 的效果,就是类似…

Codeforce 水题报告(2)

又水了一发Codeforce &#xff0c;这次继续发发题解顺便给自己PKUSC攒攒人品吧 CodeForces 438C&#xff1a;The Child and Polygon: 描述&#xff1a;给出一个多边形&#xff0c;求三角剖分的方案数&#xff08;n<200&#xff09;。 首先很明显可能是区间dp&#xff0c;我们…

itextpdf 怎么下划线_itext生成pdf设置下划线,itextpdf下划线,使用setUnderli

itext生成pdf设置下划线&#xff0c;itextpdf下划线,使用setUnderli使用setUnderline设置iText对象下划线显示我们可以使用setUnderline(float thickness, float yPosition)方法设置一个iText的Chunk对象下划线的显示样式。setUnderline方法的参数介绍&#xff1a;public Chunk…

textureview 旋转90度后平铺_C++初级编程NOIP题:11H1537: 图像旋转

时间限制: 1 Sec 内存限制: 128 MB题目描述输入一个n行m列的黑白图像&#xff0c;将它顺时针旋转90度后输出。输入第一行包含两个整数n和m&#xff0c;表示图像包含像素点的行数和列数。1 < n < 100&#xff0c;1 < m < 100。接下来n行&#xff0c;每行m个整数&…

android录音权限被占用,请问,app被用户禁止拍照和录音权限之后,拍照和录音事件应该怎么处理?...

另外android权限判断在6.0下没法直接判断然后通过代码设置&#xff0c;建议还是通过异常错误判断然后提示一下用户去手动修改权限。判断权限是否存在打开权限设置var r null;mui.plusReady(function () {document.querySelector(#btn1).addEventListener(tap,function () {r …

太阳粒子是什么东西_太阳粒子流是什么

匿名用户1级2011-06-21 回答因能量的增加而使得自身活动加强&#xff0c;从而向广袤的空间释放出大量带电粒子所形成的高速粒子流&#xff0c;科学家把这一现象比喻为太阳打“喷嚏”。由于太阳风中的气团主要内容是带电等离子体&#xff0c;并以每小时 150 万到 300 万公里的速…

qt中的qwidget如何实现自定义部件_2.3信号和槽(中)

2.3.1 在ui中编辑信号槽这一小节我们来看一下如何在ui中编辑信号槽。我们想要在ui中实现点击按钮&#xff0c;能够控制进度条的显隐。新建GUI项目SignalsAndSlots2&#xff0c;类名SignalsAndSlots2&#xff0c;基类选择QWidget。打开ui文件。在编辑界面中拖入一个Progress Bar…

html中 一条样式规则,css规则的基本格式是什么?

CSS(Cascading Styel Sheet)是控制 Web 页面外观的一系列格式设置规则,是网页设计必不可少的工具之一。下面我们就开始学习css的基本语法格式。css规则的基本格式是什么&#xff1f;层叠样式表是一个完全的纯文本文件&#xff0c;通常以“css”为扩展名作为单独的文件来使用…

css transtion不生效_CSS中transition属性不起作用的原因及解决方法

CSS中的transition属性可用于调整元素更改的时间&#xff0c;它可以像动画一样显示。虽然transition属性可以很方便的实现过渡效果&#xff0c;但是有时候可能会出现无效的情况&#xff0c;所以我们就需要来理解transition属性的写法规则。我们先来看一下CSS中transition属性不…

三白话经典算法系列 Shell排序实现

山是包插入的精髓排序排序&#xff0c;这种方法&#xff0c;也被称为窄增量排序。因为DL&#xff0e;Shell至1959提出命名。该方法的基本思想是&#xff1a;先将整个待排元素序列切割成若干个子序列&#xff08;由相隔某个“增量”的元素组成的&#xff09;分别进行直接插入排序…

python清空列表_Python之列表

Python变量没有数据类型&#xff0c;所以Python没有数组。整数&#xff1b;浮点数&#xff1b;字符串&#xff1b;对象创建一个列表&#xff1a;1.member[大鱼,123,3.14,[1,2,3]]2.empty[]向列表添加元素&#xff1a;append&#xff08;&#xff09;&#xff1a;member[大鱼,12…

java切面1.6需要的包_Java技术 AspectJ

AspectJ1 简介AspectJ&#xff1a;Java社区里最完整最流行的AOP框架。在Spring2.0以上版本中&#xff0c;可以使用基于AspectJ注解或基于XML配置的AOP。2 在Spring中启用AspectJ注解支持导入JAR包springsource.net.sf.cglib-2.2.0.jarspringsource.org.aopalliance-1.0.0.jarsp…

华为什么时候更新鸿蒙os,华为鸿蒙系统升级时间表

华为鸿蒙系统升级时间表6月2日HUAWEI Mate 40 ProHUAWEI P40 ProHUAWEI Mate 40 ProHUAWEI Mate 30 ProHUAWEI Mate 40 RS保时捷设计HUAWEI Mate 30 Pro 5GHUAWEI Mate 40HUAWEI Mate 30E Pro 5GHUAWEI Mate 40EHUAWEI Mate 30 RS保时捷设计HUAWEI Mate 2HUAWEI Mate 30HUAWEI …

vsftpd安装问题汇总(持续更新。。)

问题1. 在执行make命令时却出现了问题&#xff0c;具体如下&#xff1a; sysdeputil.o: In function vsf_sysdep_check_auth: sysdeputil.c:(.text0x109): undefined reference to crypt sysdeputil.c:(.text0x13a): undefined reference to crypt collect2: ld 返回 1 make: *…

python游戏程序编码_python实现的生成随机迷宫算法核心代码分享(含游戏完整代码)...

最近研究了下迷宫的生成算法&#xff0c;然后做了个简单的在线迷宫游戏。游戏地址和对应的开源项目地址可以通过上面的链接找到。开源项目中没有包含服务端的代码&#xff0c;因为服务端的代码实在太简单了。下面将简单的介绍下随机迷宫的生成算法。一旦理解后你会发现这个算法…

cesium等高线_Cesium专栏-气象站点色斑图、等值线图(不提供源码)

Cesium 是一款面向三维地球和地图的&#xff0c;世界级的JavaScript开源产品。它提供了基于JavaScript语言的开发包&#xff0c;方便用户快速搭建一款零插件的虚拟地球Web应用&#xff0c;并在性能&#xff0c;精度&#xff0c;渲染质量以及多平台&#xff0c;易用性上都有高质…

为什么OC语言很难

作为一个Objective-C的coder&#xff0c;我总能听到一部分人在这门语言上抱怨有很多问题。他们总在想快速学习这门语言来写一个App出来&#xff0c;但他们也总是联想到Objective-C看上去实在太难了或者在想这些语法符号都是神马玩意&#xff1f;不错&#xff0c;他们问得非常好…

小狐狸ChatGPT付费创作系统小程序端开发工具提示打开显示无法打开页面解决办法

最新版2.6.7版下载&#xff1a;https://download.csdn.net/download/mo3408/88656497 很多会员在上传小程序前端时经常出现首页无法打开的情况&#xff0c;错误提示无法打开该页面&#xff0c;不支持打开&#xff0c;这种问题其实就是权限问题&#xff0c;页面是通过调用web-v…

http status 404 – 未找到_从零开始搭建自己的网站004添加404处理页面

在将web-war上传到服务器并重启tomcat后&#xff0c;发现找不到login页面目录结构&#xff1a;add exception do wth page2.添加页面内容&#xff1b;到w404.jsp异常处理&#xff0c;404首页 Home (current) Link Dropdown Action Another action Disabled Search 百度百科&am…