2

以下は私のために働きます:

mysql -u 'root' -h 8.8.8.88 mo -e 'UPDATE `path_last_updated` 
    SET timestamp="2012-01-03 00:00:00"'

ただし、以下はそうではありません。

TIMESTAMP=`date "+%Y-%m-%d-%T"`
mysql -u 'root' -h 8.8.8.88 mo -e 'UPDATE `path_last_updated` 
    SET timestamp=$TIMESTAMP'

UNIXからのタイムスタンプをmysqlテーブルに挿入するにはどうすればよいですか?

更新

TIMESTAMP=`date "+%Y-%m-%d %T"`
mysql -u 'root' -h 8.8.8.88 mo -e "UPDATE `path_last_updated` 
    SET timestamp='$TIMESTAMP'"

ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual 
that corresponds to your MySQL server version for the right syntax to use near 'SET 
timestamp='2013-01-31 15:46:00'' at line 1
4

2 に答える 2

2

シェル変数の補間は、単一引用符(')ではなく、二重引用符( ")の間でのみ機能します。また、二重引用符で囲まれた文字列では、埋め込みシェルコマンドとして扱われるバックティックもあります。

試す:

mysql -u 'root' -h 8.8.8.88 mo -e "UPDATE \`path_last_updated\`
    SET timestamp='$TIMESTAMP'"

また、fwiwでは、日付コマンドの形式に、%dと%Tの間に余分なダッシュ(-)があります。

于 2013-01-31T23:41:43.897 に答える
0

ALTER TABLE簡単にするために:

ALTER TABLE path_last_updated ADD date_entered timestamp DEFAULT CURRENT_TIMESTAMP

そしてシェルで:

mysql -u 'root' -h 8.8.8.88 mo -e "UPDATE path_last_updated SET timestamp=DEFAULT"
于 2013-01-31T23:57:43.423 に答える