Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [mysql]query su data

  1. #1

    [mysql]query su data

    Salve!in un db ho una data salvata nel formato DATE [aaaa-mm-gg], in un form ho un menù a tendina dal quale seleziono il mese di quella data. Come faccio ad impostare una query che mi prenda solo i record in cui il mese all'interno della data è uguale al mese selezionato?

    Io pensavo esistesse un MONTHOFYEAR ma non sembra proprio. Sono andato sul sito mysql.com e ho trovato solo questi:
    http://dev.mysql.com/doc/maxdb/en/0c...61/content.htm

    Ho letto anche la pillola, ma non mi sembra di aver visto nulla che faccia al caso mio...

    Grazie mille a chi mi saprà aiutare!
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  2. #2
    Utente di HTML.it L'avatar di *Ray*
    Registrato dal
    Oct 2000
    Messaggi
    495
    Non sono sicuro che si possa usare la funzione LIKE per i campi di tipo DATE, ma prova a vedere. Non trovo altra soluzione.

    Nel caso il tuo mese a due cifre sia nella variabile $month sarebbe qualcosa del genere

    SELECT fieldList FROM tableName WHERE data LIKE "____-$month-__"

    Non so se funziona pero'; prova.

  3. #3

    Re: [mysql]query su data

    Originariamente inviato da 13manuel84
    Salve!in un db ho una data salvata nel formato DATE [aaaa-mm-gg], in un form ho un menù a tendina dal quale seleziono il mese di quella data. Come faccio ad impostare una query che mi prenda solo i record in cui il mese all'interno della data è uguale al mese selezionato?

    Io pensavo esistesse un MONTHOFYEAR ma non sembra proprio. Sono andato sul sito mysql.com e ho trovato solo questi:
    http://dev.mysql.com/doc/maxdb/en/0c...61/content.htm

    Ho letto anche la pillola, ma non mi sembra di aver visto nulla che faccia al caso mio...

    Grazie mille a chi mi saprà aiutare!
    Letto male.... (forse)

    SELECT * FROM TABELLA
    WHERE MONTH(campo_data) = $mese

    tieni pero' presente che ti pescherebbe "quel mese" di qualsiasi anno. Quindi, di solito si dovrebbe mettere anche quello .....

    SELECT * FROM TABELLA
    WHERE MONTH(DATA) = $mese
    AND YEAR(campo_data) = $year

    Il like funziona, anche se la data verra' pero' valutata come stringa.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4

    Re: Re: [mysql]query su data

    Originariamente inviato da piero.mac
    Letto male.... (forse)

    SELECT * FROM TABELLA
    WHERE MONTH(campo_data) = $mese

    tieni pero' presente che ti pescherebbe "quel mese" di qualsiasi anno. Quindi, di solito si dovrebbe mettere anche quello .....

    SELECT * FROM TABELLA
    WHERE MONTH(DATA) = $mese
    AND YEAR(campo_data) = $year

    Il like funziona, anche se la data verra' pero' valutata come stringa.

    Si avevo letto male e di fretta. sorry.

    Grazie mille!
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  5. #5
    Riporto su un attimo la discussione perché sto cercando una spiegazione ma non la trovo. Mi sapete dire [o rimandare ad una pagina in cui me lo spieghi] che differenza c'è tra il semplice operatore = e il LIKE? Perché in effetti usando il LIKE non mi trovava nessun record, mentre usando l'= funziona correttamente.

    Grazie mille!
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  6. #6
    LIKE e' il comparatore per stringhe. Usa l'indice solo se la stringa non inizia con un carattere jolly (no '%$abc' per es.)

    = e' il comparatore per numerico e date.

    La negazione e' NOT LIKE oppure !=

    Nulla toglie che una stringa ascii venga comparata con = , in questo caso non sono permessi i caratteri jolly.

    WHERE pippo LIKE 'Pippo' cerchera' esattamente 'Pippo'. Se case sensitive lo decide il campo se tipo BINARY.

    WHERE pippo = 'Pippo' ottiene lo stesso risultato. Mentre:

    WHERE pippo = 'Pip%' darebbe errore.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    Originariamente inviato da piero.mac
    LIKE e' il comparatore per stringhe. Usa l'indice solo se la stringa non inizia con un carattere jolly (no '%$abc' per es.)

    = e' il comparatore per numerico e date.

    ...
    Ti ringrazio!molto chiaro e gentile!

    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

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.