Originariamente inviato da dvd_ram
Ciao.
Volevo chiedere una info sul date_sub.
Ho un campo data nella mia tabella e volevo fare la sottrazione alla data odierna di questa data, avendo come risultato il numero dei mesi trascorsi ... e' possibile con questa funzione fare una cosa del genere ? Grassieee
Ciao,
Non con date_sub. Serve a calcolare dei periodi in modo particolare secondo una tabella descrittiva che puoi trovare nel manuale o nella pillola
Per il tuo caso (calcolo dei mesi) esiste una apposita funzione poco conosciuta in verità, che calcola esclusivamente i mesi tra una data e l'altra.
PERIOD_DIFF(P1,P2) - Rende il numero dei mesi tra due date (P1 e P2).
Accetta il formato YYMM o YYYYMM.
Returns the number of months between periods P1 and P2. P1 and P2 should be in the format YYMM or YYYYMM.
Note that the period arguments P1 and P2 are not date values:
SELECT PERIOD_DIFF(9802,199703);
-> 11
l'argomento P1,P2 non è una data, ma un valore numerico. Come lo puoi ottenere? Usando date_format. Un esempio:
codice:
SELECT PERIOD_DIFF(
DATE_FORMAT(NOW(),'%Y%m'),
DATE_FORMAT(campo_data,'%Y%m')
) as mesi
FROM tabella
WHERE ecc..
In contrapposizione a PERIOD_DIFF esiste PERIOD_ADD che serve a sommare ad una data un numero stabilito di mesi.