php - 如何查询存储为 int(11) 的日期

标签 php mysql date

日期存储在 int(11) 中,作为 Fuelphp 的默认值。现在我想按月和按年提取数据进行存档。即使用 mysql 查询,使用条件为 MONTH(date) = 'February' AND YEAR(date) = '2014'。 我尝试使用以下 mysql 查询但无济于事。

SELECT
    contents.*,
    menus.menu_parent,
    categories.category_alias
FROM
    contents
LEFT JOIN
    menus ON menus.link = contents.id
JOIN
    categories ON categories.id = contents.category_id
WHERE
    contents.status = '1' AND
    DATE_FORMAT(FROM_UNIXTIME(contents.`published_date`), '%Y %M') = '2014 January' AND
    contents.category_id = 3

数据库中的日期值如下所示: 2014 年 8 月 17 日 - 1408212900 2015 年 3 月 27 日 - 1427393700

存储到数据库期间:strtotime(date)

我该如何解决这个问题? 欢迎任何帮助/建议。提前致谢。

最佳答案

也许这样的事情会对你有所帮助:

SELECT contents.*, menus.menu_parent, categories.category_alias 
FROM contents 
LEFT JOIN menus ON menus.link = contents.id 
JOIN categories ON categories.id = contents.category_id 
WHERE contents.status = '1' 
AND MONTHNAME(FROM_UNIXTIME(last_activity)) = 'January'
AND YEAR(FROM_UNIXTIME(last_activity)) = 2014
AND contents.category_id = 3;

您可以首先使用将要比较的字段转换为实际日期

FROM_UNIXTIME

有关 MySQL 中日期时间函数的更多信息: https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html

编辑: 为了改进查询,您可以将两者结合起来:

SELECT contents.*, menus.menu_parent, categories.category_alias 
FROM contents 
LEFT JOIN menus ON menus.link = contents.id 
JOIN categories ON categories.id = contents.category_id 
WHERE contents.status = '1' 
AND DATE_FORMAT((FROM_UNIXTIME(last_activity)),'%M-%Y') = 'January-2014'
AND contents.category_id = 3;

关于php - 如何查询存储为 int(11) 的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29538318/

相关文章:

javascript - 如何打印 ajax 响应到 span 类

php - 是否可以使用 Javascript 事件增加文本区域的行数?

sql - ms-access:从另一个查询中选择

需要 PHP PDO 帮助

java - 在 Android 中获取本周的日期

python - 从 Python (pandas) 的日期列中获取周开始日期(星期一)?

php - 在自定义帖子类型存档的模板中设置 Yoast 标题

php - 显示内部连接表中的名称?

php - 如何连接到 WAMP 服务器上的 MySQL?

C++ boost 日期格式