2011-11-07 125 views
0

我使用NOW()函数,但我得到这个奇怪的日期:插入日期数据库MySQL中

2011-11-06

如何获得以下欧洲日期:

SS: MM:DD HH:MM:今年(2011年6月11日)

在我的数据库我设置字段列日截止日

你怎么DATEFORMAT融入这个查询:

$avatar_Q=mysql_query(" 
       SELECT user_name,avatar,reputation,comment, DATE_FORMAT(date,'%d/%m/%Y %h:%i') AS rightNow 
       FROM comments AS com 
       INNER JOIN users AS us ON com.user_id=us.user_id 
       WHERE comment_id=$commentID 
     ") or die(mysql_error()); 

的日期是在列的表

+0

通过显示您的日期** **怪你的意思是YYYY-MM-DD – ManseUK

+0

重新您的更新 - 你需要在选择包括表名声明 - 即'users.username' – ManseUK

回答

3

MySQL使用以下日期格式 - YYYY-MM-DD - 如果你想有一个不同的格式,你需要使用DATE_FORMAT功能上选择

例如:

SELECT DATE_FORMAT(datecolumn,"%d/%m/%Y %h:%i") 
FROM atable 

要集成date_format功能到您的select声明你需要列出个别领域

+0

更新我的答案..它给了我这个:列'日期'在字段列表中是不明确的 – WithFlyingColors

+0

@WithFlyingColors你的意思是问题?你需要在选择列表中包含表名 - 例如'users.user_name,tablename.date'等等.. – ManseUK

+0

好吧..我得到了我想要的东西..有时候我得到这个由于某种原因 – WithFlyingColors

0

我个人的建议是,以保存日期为UNIX时间戳(使用time()功能),

这样,你愿意,你可以将其格式化。

Shai。

+1

取决于你的专栏是检查了这一点 - > http://stackoverflow.com/questions/409286/datetime-vs-timestamp – ManseUK

+0

@ManseUK:好点。还有一些提示,为什么不在数据库中使用Unix时间戳,以及为什么本地时间戳更好。不要存储Unix时间戳,而是使用'TIMESTAMP'列类型是个好主意。 – Tadeck

+0

@Tadeck theres用于这两种数据类型 - 肯定同意:-) – ManseUK

1

是的,使用一个时间戳列和插入与CURRENT_TIMESTAMP。它可以节省很多时间! :)

+0

取决于你的专栏是什么 - 检查了这一点http:///stackoverflow.com/questions/409286/datetime-vs-timestamp – ManseUK

+0

使用TimeStamp类型列从来没有任何类型的问题。此外,由于它使用UNIX时间戳格式,所以Date列的速度要快很多。所以你应该使用TimeStamp而不是Date。而且,使用PHP,您可以在没有任何代码的情况下获得正确的结果! –

+0

我没有说使用'TIMESTAMP'数据类型是错误的......只是取决于具体情况 - 不知道OP使用的列是什么 – ManseUK