mysqldump 根据时间字段导出数据的问题

mysqldump  有很多有用的参数,根据条件导出数据的选项 -w  --where 用的情况并不多。如果不注意还是容易掉进坑里的

mysql server默认的时区跟OS服务器保证一致:

mysql> show variables like ‘%zone%‘;
+------------------+--------+
| Variable_name | Value |
+------------------+--------+
| system_time_zone | CST |
| time_zone | SYSTEM |

date -R
Wed, 23 Nov 2016 21:31:32 +0800

比如在中国大陆都统一使用的东八区.不需要在意时区问题,但是如果需要根据时间导数据的话就要注意了:

--tz-utc SET TIME_ZONE=‘+00:00‘ at top of dump to allow dumping of
TIMESTAMP data when a server has data in different time
zones or data is being moved between servers with
different time zones.
(Defaults to on; use --skip-tz-utc to disable.)

不在意这个参数的话,mysqldump    -w   "raw_add_time>=‘XXXX-XX-XX ‘" 直接导出来的数据就不准。根据mysql 客户端能查到的数据mysqldump 时可能就dump不到,因为时区少了8个小时!!!

靠谱的做法是mysqldump 时加上--skip-tz-utc 禁用该时区选项:mysqldump    -w   "raw_add_time>=‘XXXX-XX-XX ‘"   --skip-tz-utc  这样 mysql 能查到的记录mysqldump也能导出来。

Ps:如果涉及到跨时区数据迁移的话就要当心了

时间: 2024-08-02 22:57:50

mysqldump 根据时间字段导出数据的问题的相关文章

MongoDB mongodump 按时间区域导出数据

根据ObjectId 可得出时间 时间区域 ["2014-01-01 00:00:00","2015-11-15 00:00:00") 在mongo shell ,根据时间 生成 这个区域的id begin = new Date("2014-01-01 00:00:00").getTime()/1000 begin = begin.toString(16) begin = begin + new Array(17).join("0&qu

yii2 数据导出 excel导出以及导出数据时列超过26列时解决办法

作者:白狼 出处:http://www.manks.top/article/yii2_excel_extension? 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利. 先概括下我们接下来要说的大致内容: 数据列表页面导出excel数据, 1.可以根据GridView的filter进行搜索数据并导出 2.可以自行扩展数据导出的时间直接导出数据 //先来看controller层,接收GridView参数并做拼接处理 php c

MySQL数据库使用mysqldump导出数据详解

mysqldump是mysql用于转存储数据库的实用程序.它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT等.接下来通过本文给大家介绍MySQL数据库使用mysqldump导出数据详解,需要的朋友一起学习吧 mysqldump是mysql用于转存储数据库的客户端程序.它主要产生一系列的SQL语句,可以封装到文件,该文件包含有所有重建您的数据库所 需要的 SQL命令如CREATE DATABASE,CREATE TABLE,INSERT等等.可

mysqldump指定编码导出数据后转变编码

第一步,导出旧库mysqldump --default-character-set latin1 -uroot -pXXX --database db >     /tmp/old.sql第二步,转换编码iconv -t utf-8 -f gb2312 -c /tmp/old.sql > /tmp/new.sql第三步,导入新库修改new.sql,增加一条sql语句: "SET NAMES utf8;",保存.mysql -hlocalhost -uroot db <

mysql mysqldump只导出表结构或只导出数据的实现方法

mysql mysqldump 只导出表结构 不导出数据 复制代码代码如下: mysqldump --opt -d 数据库名 -u root -p > xxx.sql 备份数据库  复制代码代码如下: #mysqldump 数据库名 >数据库备份名 #mysqldump -A -u用户名 -p密码 数据库名>数据库备份名 #mysqldump -d -A --add-drop-table -uroot -p >xxx.sql 1.导出结构不导出数据  复制代码代码如下: mysql

MySQL中mysqldump导出数据的使用

mysqldump常用参数说明: 帮助使用:mysqldump --help -A, --all-databases 导出全部数据库 mysqldump -uroot -p –A > /tmp/filename.sql -Y, --all-tablespaces 导出全部表空间 -y, --no-tablespaces 不导出任何表空间信息. --add-drop-database 每个数据库创建之前添加drop数据库语句. --add-drop-table 每个数据表创建之前添加drop数据表

将mongodb 数据指定字段导出,然后指定字段导入mysql 实例 及相关问题解决

需求:将mongodb 数据指定字段导出,然后再指定字段导入mysql  表中 直接上图吧, 最后 会将遇到几个问题及解决方案贴出,以便遇到类似问题可以迅速解决(期间所用命令具体用法不在本文详解之内) 将mongodb 数据指定字段导出,所用命令Mongoexport ,具体查阅官方文档: 导出指定二级字段 Mongodb /opt/mongodb/bin/mongoexport  --host yourip  --port yourport   -d app_form -c applicati

Oracle通过PL/SQL Developer导出数据为CSV格式,VARCHAR2类型的字段如果存入的是数值(例如3307830000004059)太长,最后一位会被置为0

问题描述: Oracle通过PL/SQL Developer导出数据为CSV格式,VARCHAR2类型的字段如果存入的是数值(例如3307830000004059)太长,CSV文件该列会用科学计数法表示,即使选择该列,点击数据--.>分列,固定宽度,列数据格式选择文本,最后一位仍然会被置为0. 解决方法: Oracle通过PL/SQL Developer导出数据为CSV格式,新建一个Excel文件,点击数据-->自文本,选择之前导出的CSV文件,文件类型分隔符号,选择逗号,[选中所有列],然后

mysqldump只导出数据

导出数据 mysqldump -u帐号-p密码库--table 表--skip-lock-tables 不管锁-w "语句(比如id > 1,而不是sql语句)"--extended-insert=false 逐条插入(性能差,不过可读性会比较好)> 导入文件(xxx.sql) 如sql语句为 SELECT * FROM WeaponDecomposesLog1 WHERE `Time` > '2017-06-09'; 库 pjblog 表 ForgingAddWor