Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Errore ECCEZIONE su confronto Date

    Ciao, ho fatto ricerche nel forum ma non ho trovato nulla che mi aiutasse...
    Ho una pagina a cui invio 2 campi data per estrarre dei dati in quell'intervallo e visualizzarne il conteggio giornaliero.
    La mia query di partenza è questa (al posto delle date ci sono le variabili passate):
    codice:
    SELECT Mid(CStr(DateTimeCall),1,10) AS Data, Count(Mid(CStr(DateTimeCall),1,10)) As Chiamate FROM Chiamate WHERE (DateTimeCall Between #7/9/2007# AND #7/19/2007#) AND (TimeValue(DateTimeCall) Between #08.30.00# And #12.30.00# OR TimeValue(DateTimeCall) Between #13.30.00# And #18.30.00#) AND GroupID <> "Telefoni" GROUP BY Mid(CStr(DateTimeCall),1,10)
    Poi faccio un ciclo FOR, in cui data_inizio e data_fine sono i valori passati, convertiti precedentemente con CDate.
    Il problema è che nel mio sql il campo DATA è stato convertito in stringa, quindi nel ciclo quando devo confrontare I con il campo data necessito per forza di una conversione, ma x qualsiasi tipo di confronto che faccio, mi ritorna sempre errore "ECCEZIONE" sulla riga in grassetto:

    codice:
    For I = data_inizio To data_fine
       If not rsArrivate.BOF or not rsArrivate.EOF then
          If CDate(rsArrivate("Data")) = I Then
             Response.Write rsArrivate("Chiamate")
             rsArrivate.MoveNext
          Else
             Response.Write "0"
          End If
       End If
    Next

    Come lo risolvo?

  2. #2
    codice:
    For I = data_inizio To data_fine
       If not rsArrivate.BOF or not rsArrivate.EOF then
          If IsDate(rsArrive("Data")) then
            If CDate(rsArrivate("Data")) = I Then
               Response.Write rsArrivate("Chiamate")           
            Else
               Response.Write "0"
            End If
          Else
            Response.Write "
    " & rsArrivate("Data") & " non è una data!
    "
          End If
       End If
       rsArrivate.MoveNext
    Next

  3. #3
    grazie!!!
    anche se non capisco perchè fa la differenza quel IsDate considerando che non modifica il campo e il confronto successivo è uguale a quello che mi dava errore :master:

    mah... :master:

  4. #4
    IsDate è una funzione boolean che verifica se un valore è riconosciuto come data oppure no.
    CDate invece converte in data un valore con la differenza che, se il valore non è una data, allora la conversione va in errore. Quindi, prima il controllo con IsDate e, se true, converte in Data.

  5. #5
    capito, non sapevo che fosse necessario usarlo prima di fare una conversione data

    gracias


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.