php - 如何在mysql中更改没有秒的时间戳格式

标签 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'

请帮助如何使它正确

最佳答案

您的代码有几个问题:

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) user_review 上的 INNER JOIN 无效,因为它缺少用于表达连接条件的 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"

关于php - 如何在mysql中更改没有秒的时间戳格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54201036/

相关文章:

php - 在 PHP 中创建 PDF 缩略图并缓存它

php - 如何捕获无效的 preg_match 模式?

mysql - 我的 SQL 查询正在返回结果,但它们重复了约 50 次。我不明白为什么

mysql - 使用验证值在两列中对查询进行排序

Mysql bug,鬼专栏

PHP 变量作为输入值

sql - 物化 View 强制和完整

PHP5 : get imported namespaces list

php - 为什么MySQL中的连接太多

mysql - 获取最小值的 id,按另一列分组