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

Shell 变量插值仅在双引号 (") 之间起作用,而不是单引号 (')。您还在那里有反引号,在双引号字符串中将被视为嵌入式 shell 命令。

尝试:

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

此外,您的日期命令格式中有一个额外的破折号 (-),位于 %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 回答