shell+mysql对日期型数据进行处理

微信公众号:关注菜鸟解说大数据
关注可了解更多的大数据相关的内容。问题或建议,请公众号留言;
如果你觉得我写的文章对你有帮助,欢迎关注和赞赏我[1]

推荐阅读shell+mysql对日期型数据进行处理1.建表和插入数据2.用group by的方式实现提取date表中的数据3.使用DATE_FORMAT函数的方式4.上述两种方式的区别5.总结关注菜鸟解说大数据

推荐阅读

shell+mysql对日期型数据进行处理

需求:建好一张原表,和一张正式表,原表中要求要有所有的数据,而正式表中只需要原表中每个月最后一天的数据,如果是你,你会怎么解决呢?接下来就看看我的思路吧。

1.建表和插入数据

这里我需要建立一张表,里面的数据如下图1所示
表中的数据是由下面的shell脚本得来的

 1#!/bin/bash
2HOSTNAME="localhost"  
3PORT="3306" 
4USERNAME="root"  
5PASSWORD="root"  
6DBNAME="test"  
7TABLENAME="date"  
8
9
10EXPORT_START_DATE=$1
11EXPORT_END_DATE=$2
12
13
14#创建表
15
16create_table_sql=" drop table if EXISTS ${TABLENAME};
17create table IF NOT EXISTS ${TABLENAME} ( 
18day_date VARCHAR(20default null,
19day_id VARCHAR(20default null,
20day_desc VARCHAR(20default null,
21month_id VARCHAR(20default null,
22month_desc VARCHAR(20default null,
23quarter_id VARCHAR(20default null,
24quarter_desc VARCHAR(20default null,
25half_year_id VARCHAR(20default null,
26half_year_desc VARCHAR(20default null,
27year_id VARCHAR(20default null,
28year_desc VARCHAR(20default null
29 )"
30
31mysql -h${HOSTNAME}  -P${PORT}  -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "
${create_table_sql}"
32
33i=$EXPORT_START_DATE
34while [[ $i < `date -d "
+1 day $EXPORT_END_DATE" +%Y%m%d` ]]
35  do
36    #echo $i
37    k_day_date=`date -d $i +%F`
38    day_date=$k_day_date
39    #echo $day_date
40
41    k_day_id=`date -d $i +%Y%m%d`
42    day_id=$k_day_id
43    #echo $day_id
44
45    k_day_desc=`date -d $i +%Y年%m月%d日`
46    day_desc=$k_day_desc
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当然,我可以帮你编写一个Shell脚本来实现MySQL数据的增量备份。以下是一个示例脚本: ```shell #!/bin/bash # MySQL数据库连接参数 host="localhost" username="your_username" password="your_password" database="your_database" # 备份路径 backup_dir="/path/to/backup" # 获取当前日期和时间 current_datetime=$(date +%Y-%m-%d_%H-%M-%S) # 创建以当前日期命名的备份文件夹 backup_folder="$backup_dir/$current_datetime" mkdir -p $backup_folder # 备份数据库结构 mysqldump -h $host -u $username -p$password --no-data $database > $backup_folder/$database-structure.sql # 获取上次备份的日志文件路径 last_backup_log="$backup_dir/last_backup.log" # 检查是否存在上次备份的日志文件 if [ -f $last_backup_log ]; then # 读取上次备份的日志文件,获取上次备份的binlog位置 last_binlog=$(cat $last_backup_log) # 备份增量数据到当前备份文件夹 mysqldump -h $host -u $username -p$password --no-create-info --skip-triggers --single-transaction --set-gtid-purged=OFF --where="timestamp >= '$last_binlog'" $database > $backup_folder/$database-incremental.sql fi # 更新上次备份的binlog位置 mysqlbinlog=$(mysql -h $host -u $username -p$password -e "SHOW MASTER STATUS\G" | grep File | awk '{print $2}') echo $mysqlbinlog > $last_backup_log # 打印备份完成消息 echo "MySQL数据增量备份已完成,文件保存在 $backup_folder" ``` 请将 `your_username`、`your_password` 和 `your_database` 替换为你的MySQL连接参数。将 `/path/to/backup` 替换为你想要保存备份文件的目录路径。 这个脚本会创建一个以当前日期和时间命名的文件夹,然后备份数据库的结构和增量数据到该文件夹。它会使用上次备份的binlog位置来确定增量备份的范围。备份完成后,它会将当前binlog位置保存到一个日志文件,以便下次备份时使用。 你可以将脚本保存为可执行文件(例如 `mysql_backup.sh`),并使用定时任务来自动运行它。请确保在运行脚本之前,已经安装了MySQL客户端工具(mysqldump和mysqlbinlog)。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值