0

回显时,我想在 mySQL 数据库中转换 TIMESTAMP 日期。几年前我有过这个工作。

"SELECT id, date, title, summery  FROM blog_posts ORDER BY id DESC"

我敢肯定它曾经是这样的:

"SELECT id, DATE_FORMAT(date, '%e %b %Y'), title, summery  FROM blog_posts ORDER BY id DESC"

首先,我可以将 mySQL 字段设置为 TIMESTAMP 以便我可以自动生成输入日期吗?那不会阻止我从那时起格式化回声上的日期吗?

我正在使用的 ech 是:

<?php echo $row_blog_posts['date']; ?>

这也是正确的吗?

4

4 回答 4

2

要自动设置时间戳,只需添加一个默认为“CURRENT_TIMESTAMP”的新时间戳列。

Ed Gibbs 回答了日期问题。

于 2013-05-30T15:29:10.423 回答
2

是的,您可以TIMESTAMP使用DATE_FORMAT. 当我在 MySQL 命令行上尝试这个时:

SELECT DATE_FORMAT(CURRENT_TIMESTAMP, '%e %b %Y');

我得到了这个结果:

+--------------------------------------------+
| date_format(current_timestamp, '%e %b %Y') |
+--------------------------------------------+
| 30 May 2013                                |
+--------------------------------------------+

如果您将格式化列别名为date

SELECT
  id, 
  DATE_FORMAT(date, '%e %b %Y') as `date`,
  title,
  summery
FROM blog_posts
ORDER BY id DESC
于 2013-05-30T15:31:23.127 回答
0

是的,它是DATE_FORMAT

我认为不可能自动告诉 MySQL 更改它返回日期的格式,但从维护的角度来看,使用 strtotime() 和 date() 在 PHP 中使用格式会更好,因为如果你想改变格式,在代码中执行起来要容易得多,特别是如果您想在其他地方以不同的格式使用相同的日期/时间。

于 2013-05-30T15:30:26.977 回答
0

相反,在 mysql 中更好地格式化日期将是在 php 中格式化原始时间戳字段

<?php echo date('Y-m-d H:i', strtotime($row_blog_posts['date'])); ?>
于 2013-05-30T15:28:15.363 回答