MySql通过在数据库中检查日期选择记录只有日期的整数字段而不是日期格式化字段

时间:2017-05-24 09:30:20

标签: mysql

我有一张表格如下

id        day          month           year       post           title
--        ---          -----           ----       ----           -----
1         11           3               2017       some text      some title
2         12           3               2017       some text      some title
3          3           4               2017       some text      some title
4          1           5               2017       some text      some title

我想要做的是我想从给定日期到今天日期从表格中选择所有记录。例如,如果表具有日期格式化字段,则我的sql select语句将如下所示

SELECT * From table Where date_field between '01/01/2015' and curdate()

但是,我的表中没有日期格式化字段。我的表中只有日期的整数字段。所以,我不知道如何选择日期之间的条件。

我试图为我的问题找到解决方案。但我无法找到解决问题的方法。我是新手php网站开发人员。

那么,任何人都可以解决我的问题吗?请帮帮我。

1 个答案:

答案 0 :(得分:0)

根据@Justcode的建议,我找到了问题的解决方案。这是解决方案>>>

$sql = "SELECT * FROM(
        SELECT STR_TO_DATE(CONCAT(m.day, '/', m.month, '/',m.year),'%d/%m/%Y') 
        AS POST_DATE, m.* FROM `maxim` AS m) as t 
        WHERE t.POST_DATE BETWEEN :start_date AND curdate() ORDER BY id DESC";

$stm = $this->db->prepare($sql);
$stm->bindParam(":start_date", $start_date, PDO::PARAM_STR);
$stm->execute();

return $stm->fetchAll(PDO::FETCH_ASSOC);

感谢@Justcode为您的概念。