Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [MySQL] Record degli ultimi 2 mesi

    Salve a tutti,
    devo prelevare dal db i record degli ultimi 2 mesi.

    Uso questa query ma non funziona:
    codice:
    SELECT * FROM tbl WHERE DATE_SUB(date, INTERVAL 2 MONTH) AND ...
    Sapete darmi una mano?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    select * from tabella where campo_data >= curdate() - interval 2 month.

  3. #3
    Originariamente inviato da nicola75ss
    select * from tabella where campo_data >= curdate() - interval 2 month.
    Grazie, a me servirebbe però che prendesse in esame gli ultimi 2 mesi solari, non dal giorno attuale.
    Mi spiego: se la query la eseguo oggi, mi deve restituire tutti i record di Gennaio e Dicembre (dal 1 al 31 di entrambi i mesi).

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    codice:
    select * from tabella where extract(year_month from campo_data) between
    extract(year_month from curdate()-interval 2 month)
    and
    extract(year_month from curdate()-interval 1 month)

  5. #5
    Originariamente inviato da nicola75ss
    codice:
    select * from tabella where extract(year_month from campo_data) between
    extract(year_month from curdate()-interval 2 month)
    and
    extract(year_month from curdate()-interval 1 month)
    Qualcosa del tipo:
    codice:
    select * from tabella where month(campo_data) >= month(curdate()) - interval 2 month
    ?

    In pratica il valore dei 2 mesi non è standard, ma variabile, quindi la tua soluzione non sarebbe fattibile se mi servissero i record degli ultimi 6/7 mesi

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da kylnas1
    In pratica il valore dei 2 mesi non è standard, ma variabile, quindi la tua soluzione non sarebbe fattibile se mi servissero i record degli ultimi 6/7 mesi

    Al posti di 1 e 2 metti i numeretti che ti servono.

  7. #7
    Ho risolto in questo modo:
    codice:
    SELECT * FROM tbl WHERE (
    EXTRACT(YEAR_MONTH FROM campo_date) >= EXTRACT(YEAR_MONTH FROM curdate() - INTERVAL n_mesi)
    )
    Grazie per l'aiuto...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.