我试图在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'
请帮助如何正确设置
答案 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_id
和users.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