仅在 MySQL 列中自动标记日期
Posted
技术标签:
【中文标题】仅在 MySQL 列中自动标记日期【英文标题】:Automatically stamp date only in MySQL column 【发布时间】:2015-09-11 12:42:09 【问题描述】:有没有办法在 mysql 中添加一列来仅标记 DATE?我知道now()
可以在sql 中使用来做到这一点。但是我正在寻找一种在添加记录时数据库本身自动添加日期(yyyy-mm-dd)的方法?在我的情况下,时间不是必需的,因此我宁愿只存储日期(不确定这是否是一种不好的做法)。
【问题讨论】:
【参考方案1】:设置列类型如timestamp DEFAULT CURRENT_TIMESTAMP
,它会自动设置日期。不幸的是,它也会设定时间。然而;您可以使用 php 操作该值。
PHP
echo date ('Y-m-d',strtotime($row['created_time']));
【讨论】:
是的,不幸的是它也会设置时间。但是您可以使用 php 函数 date() 操作字符串 感谢您的编辑。 @ZafarMalik 的回答似乎可以解决问题【参考方案2】:使用下面的函数,它将只为您提供日期。你可以通过你的应用程序-
curdate()
如果您想从数据库本身获取,请保留它 -
timestamp default current_timestamp on update current_timestamp
现在您只能按日期(mycolumn)函数获取日期。
【讨论】:
【参考方案3】:您可以像这样使用DATE_FORMAT() 函数:
SELECT DATE_FORMAT(NOW(),'%Y-%m-%d');
也可以使用插入:
INSERT INTO tablename (id, date) VALUES (1,DATE_FORMAT(NOW(),'%Y-%m-%d'));
【讨论】:
谢谢。我正在寻找一种在添加记录时数据库本身自动添加日期(yyyy-mm-dd)的方法。以上是关于仅在 MySQL 列中自动标记日期的主要内容,如果未能解决你的问题,请参考以下文章
MySQL 是不是会自动重新格式化插入到 DATETIME 类型列中的日期?