mysql使用存储过程,创建日历表:
准备日历表:
CREATE TABLE `m_dim_day` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`DAY_ID` varchar(10) DEFAULT NULL,
`DAY_SHORT_DESC` varchar(10) DEFAULT NULL,
`DAY_LONG_DESC` varchar(50) DEFAULT NULL,
`WEEK_DESC` varchar(20) DEFAULT NULL,
`WEEK_ID` varchar(20) DEFAULT NULL,
`WEEK_LONG_DESC` varchar(50) DEFAULT NULL,
`MONTH_ID` varchar(20) DEFAULT NULL,
`MONTH_LONG_DESC` varchar(50) DEFAULT NULL,
`QUARTER_ID` varchar(20) DEFAULT NULL,
`QUARTER_LONG_DESC` varchar(20) DEFAULT NULL,
`YEAR_ID` varchar(20) DEFAULT NULL,
`YEAR_LONG_DESC` varchar(50) DEFAULT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
存储过程如下:
CREATE PROCEDURE `f_m_dim_day`(in yr VARCHAR(20))
begin
declare i int;
declare start_date varchar(20);
declare end_date varchar(20);
declare date_count int;
set i=0;
set start_date= concat(yr, '-01-01');
set end_date = concat(yr+1,'-01-01');
DELETE from m_dim_day where year_id = yr;
set date_count = datediff(end_date, start_date);
while i < date_count DO
INSERT into m_dim_day (DAY_ID,DAY_SHORT_DESC,DAY_LONG_DESC,WEEK_DESC,WEEK_ID,WEEK_LONG_DESC,MONTH_ID,MONTH_LONG_DESC,QUARTER_ID,QUARTER_LONG_DESC,YEAR_ID,YEAR_LONG_DESC)
SELECT
DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d %H:%i:%s'),'%Y%m%d') DAY_ID,
DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d %H:%i:%s'),'%Y-%m-%d') DAY_SHORT_DESC,
DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d %H:%i:%s'),'%Y年%m月%d日') DAY_LONG_DESC,
case DAYOFWEEK(STR_TO_DATE(start_date,'%Y-%m-%d %H:%i:%s')) when 1 then '星期日' when 2 then '星期一' when 3 then '星期二' when 4 then '星期三' when 5 then '星期四' when 6 then '星期五' when 7 then '星期六' end WEEK_DESC,
DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d %H:%i:%s'),'%Y%u') WEEK_ID,
DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d %H:%i:%s'),'%Y年第%u周') WEEK_LONG_DESC,
DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d %H:%i:%s'),'%Y%m') MONTH_ID,
DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d %H:%i:%s'),'%Y年第%m月') MONTH_LONG_DESC,
CONCAT(DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d %H:%i:%s'),'%Y'),quarter(STR_TO_DATE( start_date,'%Y-%m-%d %H:%i:%s'))) QUARTER_ID,
CONCAT(DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d %H:%i:%s'),'%Y'),'年第',quarter(STR_TO_DATE(start_date,'%Y-%m-%d %H:%i:%s')),'季度') QUARTER_LONG_DESC,
DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d %H:%i:%s'),'%Y') YEAR_ID,
DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d %H:%i:%s'),'%Y年') YEAR_LONG_DESC
from dual;
set i=i+1;
set start_date = DATE_FORMAT(date_add(STR_TO_DATE(start_date,'%Y-%m-%d %H:%i:%s'),interval 1 day),'%Y-%m-%d');
end while;
end
调用存储过程如下,参数传入年份,即生成那一年的数据
call f_m_dim_day('2018');
第二种:
建立日历表格式:
DROP TABLE
IF
EXISTS `m_dim_day`;
CREATE TABLE `m_dim_day` (
`dt` VARCHAR ( 10 ) NOT NULL,
`dt2` VARCHAR ( 10 ) DEFAULT NULL,
`yr` VARCHAR ( 10 ) DEFAULT NULL,
`mm` VARCHAR ( 10 ) DEFAULT NULL,
`dd` VARCHAR ( 10 ) DEFAULT NULL,
`dayofweek` VARCHAR ( 10 ) DEFAULT NULL,
`weeknum` VARCHAR ( 10 ) DEFAULT NULL,
`qr` VARCHAR ( 10 ) DEFAULT NULL,
`bourse_week` VARCHAR ( 10 ) DEFAULT NULL,
`yrmm` VARCHAR ( 10 ) DEFAULT NULL,
`week_begin` VARCHAR ( 10 ) DEFAULT NULL,
`week_end` VARCHAR ( 10 ) DEFAULT NULL,
PRIMARY KEY ( `dt` )) ENGINE = INNODB DEFAULT CHARSET = utf8;
创建存储过程:
CREATE PROCEDURE `f_m_dim_day`(in year VARCHAR(20))
begin
declare i int;
declare start_date varchar(20);
declare end_date varchar(20);
declare date_count int;
set i=0;
set start_date= concat(year, '-01-01');
set end_date = concat(year+1,'-01-01');
DELETE from m_dim_day where yr = year;
set date_count = datediff(end_date, start_date);
while i < date_count DO
INSERT into m_dim_day (dt,dt2,yr,mm,dd,dayofweek,weeknum,qr,bourse_week,yrmm,week_begin,week_end)
SELECT
DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d %H:%i:%s'),'%Y-%m-%d') dt,
DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d %H:%i:%s'),'%Y%m%d') dt2,
DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d %H:%i:%s'),'%Y') yr,
DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d %H:%i:%s'),'%m') mm,
DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d %H:%i:%s'),'%d') dd,
case DAYOFWEEK(STR_TO_DATE(start_date,'%Y-%m-%d %H:%i:%s')) when 1 then '星期日' when 2 then '星期一' when 3 then '星期二' when 4 then '星期三' when 5 then '星期四' when 6 then '星期五' when 7 then '星期六' end dayofweek,
DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d %H:%i:%s'),'%u') weeknum,
CONCAT(DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d %H:%i:%s'),'%Y'),quarter(STR_TO_DATE( start_date,'%Y-%m-%d %H:%i:%s'))) qr,
DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d %H:%i:%s'),'%Y-%u') bourse_week,
DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d %H:%i:%s'),'%Y%m') yrmm,
DATE_FORMAT(subdate(start_date,date_format(start_date,'%w')-1),'%Y%m%d') week_begin,
DATE_FORMAT(subdate(start_date,date_format(start_date,'%w')-7),'%Y%m%d') week_end
from dual;
set i=i+1;
set start_date = DATE_FORMAT(date_add(STR_TO_DATE(start_date,'%Y-%m-%d %H:%i:%s'),interval 1 day),'%Y-%m-%d');
end while;
end
调用存储过程:
call f_m_dim_day('2018')
最终显示如下:
MySQL 安装参考:Linux CentOS 7.30数据库MySQL 数据库中,rename 命令用于修改表名。
压缩备份文件 当文件过大时,从服务端下载到本地比较耗时,可以采取压缩的方式 还原数据库或者表数据 登录 MySQL 选择目标数据库 还原数据库文件
创建表增删改插排序分组排序分组求和常见函数使用 sum(),count(),left第一个连接mysql的方法用CRT连接数据库连接 :命令 :[root@jxnet_db_server ~]#mysql
支付宝今天宣布集五福新玩法,可以立马集齐敬业福,现在进五福主会场 - 写福字 - 生成套卡送朋友,直接生成 5 张卡,爱国敬业和谐富强友善福各一张,发给朋友拼手气,总有一个人能拿到敬业福。
3、 到/usr/local/mysql/目录下启动服务 执行启动命令 如下图所示,表示MySQL启动成功 设置MySQL服务 1、 进入/usr/local/mysql/support-files/目录下
MySQL支持很多存储引擎,包括MyISAM、InnoDB、BDB、MEMORY、MERGE、EXAMPLE、NDB Cluster、ARCHIVE等,其中 InnoDB 和 BDB 支持事务安全。
修改MYSQL数据库默认路径下面我整理一下把MySQL从/var/lib/mysql目录下面转移到/home/mysql_data/mysql目录的具体操作:1、首先我们需要关闭MySQL,命令如下:service
修改MYSQL数据库默认路径下面我整理一下把MySQL从/var/lib/mysql目录下面转移到/home/mysql_data/mysql目录的具体操作:1、首先我们需要关闭MySQL,命令如下:service
/usr/local/mysql/bin/mysqldump -uroot –p123456789 a1m > $(date +%Y%m%d)-a1m.sql/usr/local/mysql/bin/mysqldump
一个一个删,要300多个,平均一个表3个,一条一条删估计要好久,秀一把神操作: 然后就是把查出来的结果导出来执行一遍。
按照依赖关系依次安装rpm包 依赖关系依次为common→libs→client→server五 登录并创建MySql密码1 启动MySql安装完后,使用命令 service mysqld start
MySQL按时间查询 MYSQL:今天 昨天 近7天 近30天 本月 上一月 查询本季度数据 查询上季度数据 查询本年数据 查询上年数据 查询当前这周的数据 查询上周的数据 查询上个月的数据 查询当前月份的数据
yum -y install mysql-community-serverLast metadata expiration check: 0:13:40 ago on Sun 26 Apr 2020 11
IntelliJ IDEA配置Java文件自动生成注释描述文件, 在IDEA环境中,打开File->Settings ,弹出对话框依次选择:Editor>File and Code Templates
使用 IntelliJ IDEA 开发项目,默认情况下,类实现 Serializable 序列化接口,生成序列化的快捷键是不生效的。
com/s/1BtEADEk3_3oKc1ic7IHhiQ 提取码: haqj 补充:Navicat for MySQL 中文pojie (Mac pojie版,亲试成功) Mac上的Mysql数据库工具
用 Java 程序实现乘法口诀(99乘法表),主要有两个要点需要掌握: 1、需要实现双层循环; 2、内循环的循环次数小于等于上层循环的循环次数; Java 代码如下(供参考): 循环内打印出口诀,采用条件表达式主要为判断乘积结果是否为两位数