Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    183

    Query su campo DateTime di MySql

    Ciao a tutti.

    Mi trovo ad dover convertire un sito che utilizza access come db in MySql 5.x

    Mi trovo il problema su come realizzare una query di ricerca in MySql su di un campo DATETIME la dove ad esempio viene scritta la data e l'ora [2013-09-11 16:23:34]


    Io devo fare una query che mi estragga tutti i record in base alla data e l'ora di inserimento ovvero che tenga conto sia della data e sia dell'ora.

    Faccio un esempio:

    Mi trovo tre record nel database che riportano questi dati nel campo datetime

    2013-09-11 16:23:34
    2013-09-11 18:44:21
    2013-09-12 14:12:49

    Se faccio la query oggi 11/09/2013 alle 16.00.00 non mi devo ritornare alcun record in quanto il primo record valido di oggi deve comparire dalle 16.23.34 in poi

    mentre se rieseguo la query dopo del 18.44 mi deve ritornare due record e cosi via...


    Spero sia stato chiaro. Grazie

  2. #2
    Facilissimo, con la funzione date_format() si fanno miracoli

    SELECT ... WHERE nome_colonna >= DATE_FORMAT(NOW(), '%Y-%m-%d 00-00-00');
    STK/Unit: Unit Test framework per MariaDB
    http://stk.wikidot.com/stk-unit

  3. #3
    O forse ho capito male, se vuoi ignorare eventuali record nel futuro fai così:

    SELECT ... WHERE nome_colonna BETWEEN DATE_FORMAT(NOW(), '%Y-%m-%d 00-00-00') AND NOW();
    STK/Unit: Unit Test framework per MariaDB
    http://stk.wikidot.com/stk-unit

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    183
    Faccio delle prove e ti faccio sapere

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    183
    Un po in ritardo ma volevo ringraziarti in quanto funziona.

    Approfitto x chiederti un'altra cosa sempre inerente query su date.

    Questa volta nel database mi trovo una data in formato numerico del tipo 41234 etc...

    In access avevo la query

    codice:
    select * from miatabella where year(data) = cdbl(date)
    funzionava tranquillamente in quanto dalla data con year consideravo solo l'anno, adesso in mysql non da errore ma non ritorna nulla. Come posso risolvere???

  6. #6
    select *, date_format(from_unixtime(campo_timestamp), '%Y') as anno

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

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    183
    Perdona forse la mia ignoranza...

    Ma non vedo la clausola WHERE nella query. Io devo filtrare i dati per anno per cui alla query devo indicare quale anno mi interessa filtrare 2011, 2012, 2013 etc...

    Poi volevo ricordare che il campo ove risiede la data e di tipo numerico e la data di oggi 17/09/2013 ad esempio viene scritta cosi: 41534

  8. #8
    Originariamente inviato da gn2010
    Ma non vedo la clausola WHERE nella query. Io devo filtrare i dati per anno per cui alla query devo indicare quale anno mi interessa filtrare 2011, 2012, 2013 etc...

    Poi volevo ricordare che il campo ove risiede la data e di tipo numerico e la data di oggi 17/09/2013 ad esempio viene scritta cosi: 41534
    quella non e' una data unixtime. Sara' un formato diverso (di access o microsoft) comunque non gestito (come data) da mysql. Direi quindi che dovresti prima convertire quel numerello in data.

    Per quanto riguarda il where hai solo da spostare il date format.

    select *
    from tab
    where date_format(from_unixtime(campo_timestamp), '%Y') = cdbl(date)

    ma ripeto il tuo numero e' solo un numero qualsiasi per mysql e non una data in formato numerico.

    year() torna l'anno di una data valida oppure NULL (o zero).
    41534 viene inteso come anno 2041, mese 53, giorno 4. Poco convincente come data.

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

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.