程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> 關於mysqldump的時間問題

關於mysqldump的時間問題

編輯:關於MYSQL數據庫
當前位置: 火魔網 » 數據庫 » MySQL

關於MySQLdump的時間問題

更新: 2011-08-30字體: 【 】點擊: 2

困惑了好久,今天測試了一下,終於明白了。。。
現將結果公布如下:

第一步:

在214(214為服務器)上的test數據庫中建立表dump (建表是在win下用administrator導入的)

CREATE TABLE dump (

     id         BIGINT NOT NULL DEFAULT 0,

     timestamp     TIMESTAMP NOT NULL,

     PRIMARY KEY (id)

);

第二步:
插入若干數據,如下
insert into dump(id,timestamp) values(1,'2010-01-05 01:01:00');
insert into dump(id,timestamp) values(1,'2010-01-05 05:05:00');
。。。 。。。
關於mysqldump的時間問題

第三步:
在214上用MySQLdump導出2010-01-05的全部數據
#
MySQLdump -t --extended-insert=false -w "timestamp between '2010-01-05 00:00:00' and '2010-01-05 23:59:59'" test dump -u root -p > dump1.sql

問題出現了,結果,導出的數據為
關於mysqldump的時間問題

也就是說,用MySQLdump從數據庫裡導出的數據,時間上並不符合條件裡所設置的時間。結果差了8個小時。

因此,我們要是想將數據庫中時間為2010-01-05的數據導出,MySQLdump應該如下:

# MySQLdump -t --extended-insert=false -w "timestamp between '2010-01-04 16:00:00' and '2010-01-05 15:59:59'" test dump -u root -p > dump2.sql

導出結果如下:

關於mysqldump的時間問題

從上面的結果可以看出,要導出2010-01-05的數據,需要將where條件設置成
2010-01-04 16:00:00 至 2010-01-05 15:59:59,這樣導出的結果才是想要的2010-01-05的數據。但是我們會發現,在導出的結果中,雖然id同步了,但是時間的"小時"部分還是和數據庫中的結果不同步,因此我們再做接下來的測試。

第四步:
我們先將數據庫中id為1、5、7、9、12、14、18的數據刪除。
delete from dump where id = 1;
。。。 。。。
刪完後如下圖:

接下來我們再將事先導出的2010-01-05的數據dump2.sql再導回到dump表中。

MySQL -u root -p test < /home/huitl/backuptest/dump2.sql

然後再查看數據庫中的dump表:

關於mysqldump的時間問題

時間又變回來了!!!!!!

amazing...

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved