如何在MySQL中更改没有秒的时间戳格式

时间:2019-01-15 14:36:58

标签: php mysql sql database

我试图在php中没有第二种的情况下更改时间戳格式,但是我认为在更改格式时出现了问题

这是我已经尝试过的

'SELECT 
    user_review.*, 
    data_movie.*, 
    users.username, 
    user_review.DATE_FORMAT(created_at, '"%Y-%m-%d %H:%i"') AS formatted_date
FROM data_movie 
INNER JOIN user_review 
INNER JOIN users ON data_movie.id = user_review.id_movie 
WHERE genre LIKE "'. $genre .'%" 
ORDER BY created_at desc'

请帮助如何正确设置

3 个答案:

答案 0 :(得分:4)

您的代码有几个问题:

1)user_review.DATE_FORMAT(created_at, ...)无效的SQL语法,应写为DATE_FORMAT(user_review.created_at, ...)

2)您在格式说明符中还有其他双引号:'"%Y-%m-%d %H:%i"'应该写为'%Y-%m-%d %H:%i'

3)INNER JOIN上的user_review无效,因为它缺少表示连接条件的ON子句。实际上,它似乎与users上的下一个联接混合在一起。我假设您在user_review.user_idusers.id之间有联系(您可能需要修改该子句以匹配您的表结构)

4)在WHERE子句中,LIKE运算符的右侧应放在单引号之间,而不是双引号之间。

这是您更新的查询。我将周围的引号从单引号更改为双引号,以便更轻松地在查询中嵌入单引号。

"SELECT 
    user_review.*, 
    data_movie.*, 
    users.username, 
    DATE_FORMAT(user_review.created_at, '%Y-%m-%d %H:%i') AS formatted_date 
FROM 
    data_movie 
    INNER JOIN user_review ON data_movie.id = user_review.id_movie 
    INNER JOIN users ON user_review.user_id = users.id
WHERE genre LIKE '". $genre ."%' order by created_at desc"

答案 1 :(得分:-2)

在您的php代码中尝试这种方式,您在所有“和”中均存在错误:

$query="SELECT user_review.*, data_movie.*, users.username, DATE_FORMAT(user_review.created_at, '%Y-%m-%d %H:%i') AS formatted_date 
        FROM data_movie 
        INNER JOIN user_review 
        INNER JOIN users ON data_movie.id = user_review.id_movie 
        WHERE genre LIKE '". $genre ."%' order by created_at desc";

答案 2 :(得分:-4)

尝试一下

SELECT user_review.*, data_movie.*, 
users.username, 
DATE_FORMAT(user_review.created_at, '%Y-%m-%d %H:%i') AS formatted_date 
FROM data_movie INNER JOIN user_review INNER JOIN users ON data_movie.id = user_review.id_movie WHERE genre LIKE "'. $genre .'%" ORDER BY created_at DESC