none
come filtrare sul campo DataTime sapendo solo la data RRS feed

  • Domanda

  • salve

    ho una tabella con un campo datatime.

    come posso filtrare i dati

    select * from miaTabella

    where data_ora > '2016-03-25'

    e non funziona

    cosa sbaglio?

    GRAZIE

    mercoledì 30 marzo 2016 21:29

Risposte

  • Ciao,

    per evitare qualsiasi problema nella gestione delle date in SQL Server, è sufficiente inserire e pensare alle date utilizzando il formato ISO annomesegiorno (YYYYMMGG), senza separatori; la data di oggi sarebbe quindi 20160331.

    Un altro problema tipico è rappresentato dai valori relativi a: ora, minuti, secondi e millisecondi. La data 20160331, per SQL Server è quindi: 20160331 00:00:00.000

    Nel tuo caso specifico dovresti quindi filtrare la colonna di tipo datetime in questo modo:

    select
      *
    from
      miaTabella
    where
      data_ora between '20160325 00:00:00.000' and '20160325 23:59:59.997'

    oppure

    select
      *
    from
      miaTabella
    where
      data_ora > '20160325 00:00:00.000'

    Ti consiglio di leggere questo articolo: Gestire date ed orari con SQL Server con SQL Server 2000 e 2005 che spiega come gestire correttamente le date con SQL Server. Non lasciati ingannare dal titolo :) il contenuto è ancora attuale!

    Ciao


    Sergio Govoni

    SQL Server MVP
    MVP Profile | English Blog | Twitter | LinkedIn





    mercoledì 30 marzo 2016 22:13
    Moderatore

Tutte le risposte