Para subtrair 30 dias da data/hora atual, primeiro precisamos obter a informação sobre a data/hora atual, então use o método now() do MySQL. O now() dá a data/hora atual.
O método a ser utilizado para isto é DATE_SUB() do MySQL. Aqui está a sintaxe para subtrair 30 dias do datetime atual.
A sintaxe é a seguinte –
DATE_SUB(NOW(),INTERVAL 30 DAY);
A sintaxe acima calcula o datetime atual primeiro e no próximo passo, subtrai 30 dias. Vamos primeiro ver a consulta para obter o datetime atual –
mysql> select now();
Aqui está a saída –
+---------------------+| now() |+---------------------+| 2018-11-23 16:38:43 |+---------------------+1 row in set (0.00 sec)
Agora, vamos usar o método date_sub() para subtrair 30 dias. A consulta é a seguinte –
mysql> select date_sub(now(),interval 30 day);
Aqui é a saída mostrando uma data após subtrair 30 dias –
+---------------------------------+| date_sub(now(),interval 30 day) |+---------------------------------+| 2018-10-24 16:38:50 |+---------------------------------+1 row in set (0.00 sec)
Para obter apenas o valor da data no resultado, você pode usar curdate() ao invés de now(). Aqui está a demonstração de curdate().
A consulta é a seguinte –
mysql> select date_sub(curdate(),interval 30 day);
A seguinte é a saída –
+-------------------------------------+| date_sub(curdate(),interval 30 day) |+-------------------------------------+| 2018-10-24 |+-------------------------------------+1 row in set (0.00 sec)