Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380

    [mssql] ed il conteggio per date

    Ciao ragazzi, sto impazzendo nel risolvere una banalissima query.
    Praticamente voglio contare le occorrenze che hanno una scadenza >= alla data di oggi.
    La colonna data_scadenza è tipo datetime e contiene:

    11/06/2011 0.00.00
    11/06/2011 0.00.00
    12/06/2011 0.00.00

    dovrei quindi ottenere un contatore di 3 !

    Ho iniziato con la seguente query:

    codice:
    SELECT COUNT(data_scadenza) AS News FROM Table_news where data_scadenza >= "&Date()&"
    poi ho provato la seguente
    codice:
    SELECT COUNT(data_scadenza) AS News FROM Table_news where data_scadenza >= getdate()
    e poi
    codice:
    SELECT COUNT(data_scadenza) AS News FROM Table_news convert(datetime, data_scadenza,20) >= getdate()
    nessuna si comporta in modo corretto!

    sapete dirmi dove e cosa sbaglio?
    grazie a tutti
    ciao

  2. #2
    che vuol dire "nessuna si comporta in modo corretto"?

  3. #3
    probabilmente il problema è dovuto al fatto che getdate() ti riporta anche la frazione time per cui 11/06/2011 0.00.00 è < 11/06/2011 19.52.00 quindi non la lista

    riporta tutto alla sola frazione date con

    CAST(CONVERT (VARCHAR(10), tua_data , 112) AS DATETIME)

    facce sape'

  4. #4
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380
    grazie per la rapida risposta!
    ho inserito il codice nella query:
    codice:
    SELECT COUNT(data_scadenza) AS News FROM Table_news CAST(CONVERT (VARCHAR(10), data_scadenza , 112) AS DATETIME)  >= getdate()
    dove "data_scadenza" è la mia colonna.
    Ottengo "1" come risultato anzicchè "3"

  5. #5
    rileggi con attenzione il mio post: hai fatto esattamente il contrario...

  6. #6
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380

    ho invertito l'ordine

    però ho dovuto modificare la lunghezza del VARCHAR con
    CAST(CONVERT (VARCHAR(8), tua_data , 112) AS DATETIME)

    ora pare che funzioni
    GRAZIE!!

  7. #7

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.