2015-01-09 59 views
0


我對一個簡單的bash腳本感到絕望。
所以..
我有一個MySQL數據庫在兩個不同的數據庫中運行,那裏的表應該用相同的數據同步 - 現在我在一個腳本,應該爲我做。
在表格中,有一列「editeddate」,當在這一行中編輯時自動更新自己。
所以bash腳本得到了這個。

表-A:2015年1月9日18時08分54秒
表-B:2015年1月9日18時10分09秒
,現在也不會說這些字符串是新 ...
這裏的剪斷代碼:
在Bash腳本中獲取較新的MySQL日期

table_a=$(mysql -u UID -pPW -D DB -e "SELECT editeddate FROM table_a WHERE id=1" | sed '1d') #gets sql data without columnname i.e. 2015-01-09 18:08:54 
table_a_date=$(date -d "$table_a")                #converts sql data in bash date 
table_b=$(mysql -u UID -pPW -D DB -e "SELECT editeddate FROM table_b WHERE id=1" | sed '1d') #gets sql data without columnname i.e. 2015-01-09 18:10:09 
table_b_date=$(date -d "$table_b")                #converts sql data in bash date 

if [[ $table_a > $table_b_date ]];                #if table_a is newer than table_b 
then 
    echo "table_a is newer" 
elif [[ $table_a < $table_b_date ]];               #otherwise if table_b is newer than table_a 
then 
    echo "table_b is newer" 
else                       #else if both are the same 
    echo "Nothing to is newer" 
fi 

感謝 :)

回答

0

如果你懶得去看看你的date -d呼叫隨地吐痰,你會看到它有點像

Fri Jan 9 18:08:54 CST 2015 

你不能比較日期。您正在比較STRINGS,這意味着「星期三」是LARGER比「星期四」,因爲W在字母T之後出現。

喲 如果您只是比較您要從數據庫中提取的原始2015-01-09 ...字符串,那麼我們一直很好,因爲這是一個數字字符串,以最重要的優先順序排列。

+0

所以你說如果levae table_a_date和table_b_date只比較來自MySQL的數據,它應該工作? 編輯:你是對的,非常感謝馬克! :) 不知道爲什麼我自己沒有解決這個問題 – Flaash