Visualizzazione dei risultati da 1 a 6 su 6

Discussione: [php - mysql]

  1. #1
    Utente di HTML.it L'avatar di Base
    Registrato dal
    Apr 2001
    Messaggi
    822

    [php - mysql]

    Ciao a tutti, dato un campo "disp1" di tipo DATE in una tabella che può essere riempito tramite INSERT con valore 2006-12-25,
    avrei bisogno di trovare tramite query SELECT solo tutte le date specificando solo l'anno.
    ho dato un'occhiata al thread in rilievo delle date mysql ma c'è una differenza e non so sto usando la giusta funzione, mi spiego:

    il mio campo "disp1" è di tipo DATE quindi i valori memorizzati potranno essere:
    2006-12-25
    2006-05-01
    2005-04-10
    2004-01-01
    ecc..

    $anno è la variabile che ha il valore dell'anno ad esempio "2006"

    vorrei cercare tutte le date che hanno anno 2006. ho usato questa query

    SELECT * FROM tabella WHERE YEAR($anno) = '$anno' ;

    ma logicamente non funziona. mi sapreste aiutare?
    grazie.

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Sicuramente ci saranno soluzioni più eleganti.

    In attesa che qualcuno te la suggerisca potresti provare una cosa del tipo:

    select * from tua_tabella where disp >= "2006-01-01" and disp <="2006-12-31";

    oppure

    select * from tua_tabella where disp between "2005-01-01" and "2005-12-31";

  3. #3
    Utente di HTML.it L'avatar di Base
    Registrato dal
    Apr 2001
    Messaggi
    822
    mmmm

    mi serve ricavare l'anno, anche perchè successivamente devo fare una ricerca solo per mese.

    Grazie cmq!

    (è un problema mio o tutto in network di html.it è lentissimo ?)

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    select * from tua_tabella where year(disp) = "2005";

    Non ci avevo fatto caso prima ma mi sa che la tua query non funzionava perchè come parametro di year mettevi la variabile $anno e non il nome del campo della tabella.

  5. #5
    Utente di HTML.it L'avatar di Base
    Registrato dal
    Apr 2001
    Messaggi
    822
    Originariamente inviato da nicola75ss
    select * from tua_tabella where year(disp) = "2005";

    Non ci avevo fatto caso prima ma mi sa che la tua query non funzionava perchè come parametro di year mettevi la variabile $anno e non il nome del campo della tabella.
    e ciai anche ragione !!!! funzia. che fagianone.


    ok, mi stavo chiedendo ... se devo ricercare lo stesso valore in più campi... ? (in pratica voglio sapere se nel campo disp o nel campo disp2 o nel campo disp3 esiste una data con anno 2006 )
    facendo così:

    SELECT * FROM tabella WHERE YEAR(disp OR disp2 OR disp3) = '$anno'

    non funziona...

    non mi da errore ma non trova neanche un record ..

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Prova così:
    select disp,disp2,disp3 from tabella
    where year(disp) = "2005"
    or year(disp2)= "2005"
    or year(disp3) = "2005";

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.