在 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 ...
字符串,你会很好,因为这是一个数字字符串,在最重要的优先顺序中。
我对一个简单的 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 ...
字符串,你会很好,因为这是一个数字字符串,在最重要的优先顺序中。