我想将MySQL中的时间戳转换为日期。

我想格式化用户。将注册字段作为yyyy-mm-dd输入到文本文件中。

这是我的SQL:

$sql = requestSQL("SELECT user.email, 
                   info.name, 
                   FROM_UNIXTIME(user.registration),
                   info.news
                   FROM user, info 
                   WHERE user.id = info.id ", "export members");

我还尝试了日期转换:

DATE_FORMAT(user.registration, '%d/%m/%Y')
DATE(user.registration)

我在写入文本文件之前回显结果,我得到:

email1; name1 DATE_FORMAT(用户)。registration,‘d - m % % Y); news1 email2; name2 news2

如何将该字段转换为日期?


当前回答

只需使用mysql的DATE函数:

mysql> select DATE(mytimestamp) from foo;

其他回答

如果您在输出中获得查询,您需要向我们显示实际响应结果的代码。你能发布调用requeteSQL的代码吗?

例如,如果在php中使用了单引号,它将打印变量名,而不是值

echo 'foo is $foo'; // foo is $foo

这听起来就像你的问题,我肯定这就是原因。

此外,试着去掉@符号,看看这是否有助于提供更多信息。

$SQL_result = @mysql_query($SQL_requete); // run the query

就变成了

  $SQL_result = mysql_query($SQL_requete); // run the query

如果查询抛出错误,这将停止任何错误抑制。

我想转换一个记录1580707260

通常,我使用在线时间戳转换器

想要在查询结果中显示它

请试试这个

DATE_FORMAT(FROM_UNIXTIME(field name from table), '%e %b %Y') 

AS '显示结果的名称'

DATE_FORMAT(FROM_UNIXTIME(`user.registration`), '%e %b %Y') AS 'date_formatted'

只需使用mysql的DATE函数:

mysql> select DATE(mytimestamp) from foo;

你可以使用这个命令FROM_UNIXTIME(unix_timestamp, [format]);但有时时间戳是一个很长的值,你必须删除最后3个值到0。 例如,你可以使用from_unixtime(e.f event_time /1000); 这样就解决了我的问题。