需求

下单时间为21:00-23:59,并且收货时间为第二天的订单,将这些订单的收货时间改为第三天;

  1. #!/bin/bash
  2. ###time:2016-04-26
  3. ###This script is change "specify_receive_time"
  4. ###作用:修改下单时间为21:00:00-23:59:59并且收货时间为第二天的订单,将收货时间改为第三天
  5.  
  6. TIME="`date +%F`"
  7. NEXT_DAY="`date -d next-day +%F`"
  8. LAST_DAY="`date -d last-day +%F`"
  9. MYSQL_HOST="ip地址"
  10. MYSQL_DB="miracle"
  11. MYSQL_CMD="/server/mysql5.5.39/bin/mysql"
  12. MYSQL_USER="chtime"
  13. MYSQL_PWD="密码"
  14. ###SELECT_MY="use miracle;"
  15. ###根据下单时间段:21:00:00-23:59:59(前一天),查询出收货时间
  16. ###SELECT_RETIME="SELECT specify_receive_time,order_sn FROM orders WHERE create_time>('"$LAST_DAY" 21:00:00') and create_time<('"$LAST_DAY" 23:59:59') and specify_receive_time>('"$TIME" 00:00:00') and specify_receive_time<('"$TIME" 23:59:59');"
  17.  
  18. ORDER_DIR="/data/order"
  19. ###ORDER_FILE="$ORDER_DIR/change_receive_time-`date +%F`.txt"
  20. ORDER_FILE="$ORDER_DIR/change_receive_time-"$TIME".txt"
  21. ###生成log file
  22. LOG_FILE="$ORDER_DIR/change_receive_time-"$TIME".log"
  23.  
  24. exec 1>> "$LOG_FILE"
  25. exec 2>> "$LOG_FILE"
  26.  
  27. function receive_time(){
  28. ###取出指定时间内对应的收货时间和订单号
  29. [ ! -d "$ORDER_DIR" ] && mkdir "$ORDER_DIR" -p
  30. $MYSQL_CMD -h$MYSQL_HOST -u$MYSQL_USER -p$MYSQL_PWD $MYSQL_DB -e "SELECT specify_receive_time,order_sn FROM orders WHERE create_time>('"$LAST_DAY" 21:00:00') and create_time<('"$LAST_DAY" 23:59:59') and specify_receive_time>('"$TIME" 00:00:00') and specify_receive_time<('"$TIME" 23:59:59');"|grep -v "spe" > "$ORDER_DIR"/change_receive_time-"$TIME".txt
  31. if [ `ls -l "$ORDER_DIR"/change_receive_time-"$TIME".txt|wc -l` -eq 1 ]
  32. then
  33. echo "collect specify_receive_time and order_sn success"
  34. else
  35. exit 1
  36. fi
  37.  
  38. }
  39.  
  40. function change_receive_time(){
  41. ###将取出的收货时间修改为第二天
  42. ORDER_NUM="`wc -l $ORDER_FILE|awk '{print $1}'`"
  43. ORDER_FILE="$ORDER_DIR/change_receive_time-"$TIME".txt"
  44. if [ `wc -l $ORDER_FILE|awk '{print $1}'` -eq 0 ]
  45. then
  46. echo "Do not have receive_time data"
  47. exit 2
  48. else
  49. echo "collect receive_time successful, Beginning change receive_time"
  50. fi
  51. for n in `seq 1 $ORDER_NUM`
  52. do
  53. RECEIVE_TIME="`cat $ORDER_FILE|awk '{print $2}'|sed -n "$n"p`"
  54. ORDER_SNN="`cat $ORDER_FILE|awk '{print $3}'|sed -n "$n"p`"
  55. $MYSQL_CMD -h$MYSQL_HOST -u$MYSQL_USER -p$MYSQL_PWD $MYSQL_DB -e "UPDATE orders SET specify_receive_time = '"$NEXT_DAY" "$RECEIVE_TIME"' WHERE order_sn = '"$ORDER_SNN"';"
  56. done
  57. if [ $? -eq 0 ]
  58. then
  59. echo "change specify_receive_time success"
  60. else
  61. echo "change specify_receive_time failed"
  62. fi
  63.  
  64. }
  65.  
  66. function main(){
  67. receive_time
  68. change_receive_time
  69. }
  70. main

  

修改订单的收货时间(MySQL)脚本的更多相关文章

  1. mysql脚本手动修改成oracle脚本

    今天有一个需求,立了一个新项目,新项目初步定了使用了现有的框架,但数据库要求由原来的mysql改成oracle,所以原来的基础版本的数据库脚本就需要修改成符合oracle的脚本,修改完成后,总结了一下 ...

  2. [转]centos6.5修改yum安装的mysql默认目录

    本文转自:https://www.cnblogs.com/fefjay/p/6044444.html 0.说明 Linux下更改yum默认安装的mysql路径datadir.linux下,MySQL默 ...

  3. centos6.5修改yum安装的mysql默认目录

    0.说明 Linux下更改yum默认安装的mysql路径datadir. linux下,MySQL默认的数据文档存储目录为/var/lib/mysql. 假如要把MySQL目录移到/home/data ...

  4. 按时间划分备份MySQL脚本

    按时间划分备份MySQL脚本 #!/bin/bash BASE_PATH=/data/dump/ JIRA_FILE_NAME=ZY798-`date +%Y%m%d%H%M%S`; cd /usr/ ...

  5. Magento后台手动修改订单状态方法及手动修改方法php

    订单详细内容页手动修改订单状态方法: 打开此文件:app\design\adminhtml\default\default\template\sales\order\view\history.phtm ...

  6. 批量修改照片名称的shell脚本

    代码这种经常完善的东西,其实是不太适合使用博客来发布的. 以下是一个批量修改照片名称的shell脚本: 事情是这样的,虽然手机拍的照片文件名是按照日期来确定的,但是是这种形式的 IMG_mmddYY_ ...

  7. cmd执行mssql脚本或者执行mysql脚本

    private static int ExecuteMSSql(DbInfo db, string sqlPath) { Console.WriteLine("=============== ...

  8. LoadRunner利用ODBC编写MySql脚本

    最近做了几周的LoadRunner测试,有一些心得,记录下来,以便以后查找. LoadRunner测试数据库是模拟客户端去连接数据库服务器,因此,需要协议(或者说驱动的支持).LoadRunner本身 ...

  9. 数据市中心全省中国mysql脚本

    1.查尔斯省 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2h6aGFvY2hhbw==/font/5a6L5L2T/fontsize/400/fill ...

随机推荐

  1. ubuntu下编译protobuf

    参考: http://blog.csdn.net/wuzuyu365/article/details/51900676 1.下载protobuf下载地址:https://github.com/goog ...

  2. (Array)169. Majority Element

    Given an array of size n, find the majority element. The majority element is the element that appear ...

  3. Hadoop内功修炼

    IT十八掌<大数据内功修炼系列课程>强势推出!由实战派名师徐培成亲自操刀,学完做不了大数据我们负全责!2015.12.21前,优惠价:4999(名额已不多!)2015.12.31前,优惠价 ...

  4. ORA-04021 timeout occurred while waiting to lock object

    用户要求删除一个数据库的用户 GREENPASS,在删除的过程中,报错如下: drop user GREENPASS * ERROR at line 1: ORA-04021: timeout occ ...

  5. hbase 协处理器

    一.服务端1.安装Protobuf2.RPC proto 定义文件:Examples.protooption java_package = "org.apache.hadoop.hbase. ...

  6. android bundle存放数据详解

    转载自:android bundle存放数据详解 正如大家所知道,Activity之间传递数据,是将数据存放在Intent或者Bundle中 例如: 将数据存放倒Intent中传递: 将数据放到Bun ...

  7. 第一天 :学习node.js

    ① node.js环境配置 我学过的语言最简单的一门 直接百度就可以配置 ② 每个入门 的程序都是从helloworld开始 代码如下 : var http=require('http'); http ...

  8. 【zZ】OpenCV HOGDescriptor 参数图解

    http://blog.csdn.net/raodotcong/article/details/6239431

  9. c++ stl容器set成员函数介绍及set集合插入,遍历等用法举例

    c++ stl集合set介绍 c++ stl集合(Set)是一种包含已排序对象的关联容器.set/multiset会根据待定的排序准则,自动将元素排序.两者不同在于前者不允许元素重复,而后者允许. 1 ...

  10. 通过sqoop来传输mysql/oracle/vertica数据至HBASE

    首先要注意将连接用的jar包,放到sqoop目录下,我的是/var/lib/sqoop 如果没有主键,则要加上-m 1 export正确的jdk目录 当做key的列必须唯一存在,不然报错 --mysq ...