在 Bash-Script 中获取更新的 MySQL 日期

Get newer MySQL Date in Bash-Script


我对一个简单的 bash 脚本感到绝望。
所以..
我在两个不同的数据库中有一个 MySQL 数据库 运行,那里的表应该与相同的数据同步 - 现在我正在使用一个应该为我做的脚本。
在表格中有一列 "editeddate",当在此行中编辑某物时,它会自行更新。
所以 bash 脚本得到了这个。

Table_A: 2015-01-09 18:08:54
Table_B: 2015-01-09 18:10:09
现在它不会说这些字符串中的哪个 是更新的..
这是代码片段:

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

谢谢:)

如果您想看看您的 date -d 调用吐出了什么,您会看到它类似于

Fri Jan  9 18:08:54 CST 2015

你不是在比较日期。您正在比较 STRINGS,这意味着 "Wednesday" 比 "Thursday" LARGER,因为 W 在字母表。

哟 如果你只是比较你从数据库中提取的原始 2015-01-09 ... 字符串,你会很好,因为这是一个数字字符串,在最重要的优先顺序中。