2013-05-30 73 views
1

我想在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,这样我可以有程序自动生成的入境日期?那不会阻止我从echo格式化日期?

我使用的是ECH:

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

这也是正确的吗?

+0

你之前所有人都说,我知道在我的问题DATE_FORMAT有一个错字:) – Mike

+0

个人而言,我会切换到日期时间而不是时间戳,因为它更容易理解数据时,查看它与phpM yAdmin(除非它最后一次更新的字段发生了变化),那么你可以使用strtotime($ row_blog_posts ['date']);'在mysql中获取php或UNIX_TIMESTAMP(date)中的时间戳。 – Waygood

+0

您是否在论坛中提问,以便您不必阅读[DATE_FORMAT()]的格式代码(https://dev.mysql.com/doc/refman/5.5/zh-cn/date-and-time-functions .html#function_date-format)在手册中? –

回答

0

,而不是格式化日期在MySQL更好地将在PHP

<?php echo date('Y-m-d H:i', strtotime($row_blog_posts['date'])); ?> 
+0

所有产品是:1970-01-01 01:33 – Mike

+0

它应该是日期('Y-m-d H:i',strtotime($ row_blog_posts ['date']));正如@Waygood指出的 – Ochi

2

被格式化的原始时间戳字段来获得时间戳自动设置,只是默认为“CURRENT_TIMESTAMP”添加一个新的时间戳列。

而埃德吉布斯回答了日期问题。

0

是的,它是DATE_FORMAT

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

2

是的,你可以使用DATE_FORMAT来格式化一个TIMESTAMP。当我尝试这样做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 
+0

谢谢你,这个作品是一种享受:) – Mike