以不同的日期格式执行SQL查询

时间:2016-07-14 09:44:17

标签: php mysql date

我有一个曾经是Access数据库的数据库。现在,我已迁移到MySQL。有一个表'分期'有很多记录,日期的格式类似'YYYY-mm-dd'。

现在我只是在PHP中使用日期('d-m-Y')以'dd-mm-YYYY'的格式存储新日期。

现在,我想执行此查询

SELECT * FROM `installments` WHERE YEAR(date) = YEAR(CURRENT_DATE) AND MONTH(date) = MONTH(CURRENT_DATE)

但它只适用于较旧的格式,就像2016-07-12。它确实在12-07-2016工作。我现在该怎么办?

任何形式的帮助都将受到赞赏。

我知道我可以使用日期('Y-m-d')更改格式,但我不想这样做。

2 个答案:

答案 0 :(得分:0)

我认为你需要这样的东西:

SELECT * FROM `installments` WHERE YEAR(TO_DATE(date, 'DD/MM/YYYY')) = YEAR(CURRENT_DATE) AND MONTH(TO_DATE(date, 'DD/MM/YYYY')) = MONTH(CURRENT_DATE);

希望这有帮助。

答案 1 :(得分:0)

试试这个

SELECT * FROM `installments` WHERE YEAR(STR_TO_DATE(DATE,'%d-%m-%Y')) = YEAR(CURRENT_DATE) AND MONTH(STR_TO_DATE(DATE,'%d-%m-%Y')) = MONTH(CURRENT_DATE)