首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用shell脚本将日期插入mysql表

问使用shell脚本将日期插入mysql表
EN

Stack Overflow用户
提问于 2014-04-25 11:35:21
回答 2查看 4.6K关注 0票数 0

我对shell脚本非常陌生,我正在尝试使用bash将当前日期插入到数据库表中的列中。

以下是我迄今所做的工作:

代码语言:javascript
复制
CREATE TABLE DiskUsage (id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, DiskUsage VARCHAR(50), DateOfUsage DATETIME);

表DiskUsage是在shelltest数据库中成功创建的。

现在,我尝试使用shell脚本在这个表中插入值:

代码语言:javascript
复制
dateOfUse=$(TZ=EEST date)
echo "Date: $dateOfUse"
$(df -h > t.txt)
while read Filesystem Size Used Avail Use Mounted on
do
    mysql shelltest -e "insert into DiskUsage (DiskUsage, DateOfUsage) values ('$Use', '$dateOfUse')"
done < t.txt

但是,当我尝试执行此脚本时,DateOfUsage的日期值将按如下方式插入:

所有记录的0000-00-00 00:00:00。

有人能告诉我我哪里错了吗?谢谢:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-25 11:45:29

在默认情况下,日期不显示您在这里需要的格式,您需要给出格式指示。

代码语言:javascript
复制
# date
Fri Apr 25 12:38:45 BST 2014

# date +'%F %T'
2014-04-25 12:38:45

所以在你的脚本中应该是

代码语言:javascript
复制
dateOfUse=$(TZ=EEST date +'%F %T')
票数 3
EN

Stack Overflow用户

发布于 2014-04-25 11:47:37

Mysql的默认格式是‘:mm:ss’,所以您需要在此模式中插入。

此外,您为什么要从linux中获取日期呢?您可以只放置now()而不是$date。它将自动插入日期。

甚至可以将其保留在mysql上,只需将此数据类型设置为时间戳默认的current_timestamp,并且不需要像插入行时自动插入当前日期时间那样更新该列。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23291920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档