Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di wino_7
    Registrato dal
    Dec 2006
    Messaggi
    537

    [MySql] Selezione su campo datetime passando una stringa

    Salve a tutti ho una tabella (e ci mancherebbe ), con un campo datetime che mi archivia la data e l'ora di inserimento di un articolo.

    Devo selezionare tutti gli articoli di un determinato mese, ma il mese ce l'ho sottoforma di stringa "Gennaio", come si può fare?

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    codice:
    set lc_time_names = 'it_IT';
    select * from tabella where date_format(campo_datetime,'%M') = 'gennaio' and ...eventuale_clausola_anno

  3. #3
    Originariamente inviato da nicola75ss
    codice:
    set lc_time_names = 'it_IT';
    select * from tabella where date_format(campo_datetime,'%M') = 'gennaio' and ...eventuale_clausola_anno
    boh! un mese senza anno e' come un nome senza il cognome, quindi con clausola anno. Ma a prescindere.... perche' non convertire direttamente nel possibile esistente form di richiesta il mese scritto in caratteri con il corrispondente valore numerico?

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

  4. #4
    Utente di HTML.it L'avatar di wino_7
    Registrato dal
    Dec 2006
    Messaggi
    537
    Ma questa query non funziona, mi restituisce un insieme vuoto.
    Cmq pensandoci bene come fa a funzionare ???
    Codice PHP:
    SET lc_time_names 'it_IT';
    SELECT FROM articolo WHERE date_format(data_inserimento,'%M') = 'gennaio' AND date_format(data_inserimento,'%A') = 2010 
    se il dato nel campo e' formattato nella seguente maniera

    codice:
    2010-09-22 11:04:38
    Cmq potrei anche cambiare il valore di GET in 01 al posto di gennaio.

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da wino_7
    Ma questa query non funziona, mi restituisce un insieme vuoto.
    Cmq pensandoci bene come fa a funzionare ???
    Forse perchè %A te lo sei inventato di sana pianta e non potrà mai essere uguale a 2010

    Gli specifier ammessi li trovi qui

    http://dev.mysql.com/doc/refman/5.1/...functions.html

    e la tua query diventerebbe

    codice:
    SET lc_time_names = 'it_IT';
    SELECT * FROM articolo WHERE date_format(data_inserimento,'%M') = 'gennaio' AND year(data_inserimento) = 2010
    Comunque ascolta Piero che consiglia sempre saggiamente.
    Io mi sono limitato a rispondere alla tua domanda senza pormi alcun problema circa il perchè delle tue scelte.

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.