仅在 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 类型列中的日期?

从 mysql 获取数据时,html 标记按原样显示

Google Maps V3:仅在视口中显示标记 - 清除标记问题

仅在地图中获得一些标记

如何仅在地图上的半径(圆圈)内显示标记?