Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: if then else campo ora

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    395

    if then else campo ora

    Buongiorno, ho il seguente problema:

    estraggo una lista di gare
    codice:
    SQL = "SELECT Gare.CodiceGara, Gare.Data, Gare.TipoGara, Gare.Denominazione, Gare.CodOrg, "
    SQL = SQL & "Gare.scadenza, Gare.scadenzaora, Campi.id_spec "
    SQL = SQL & "FROM Gare INNER JOIN Campi ON "
    SQL = SQL & "Gare.CodiceCampo = Campi.ID "
    SQL = SQL & "WHERE Gare.FlgCanc = False "
    SQL = SQL & "ORDER BY Gare.Data ASC, Gare.Denominazione ASC "
    	
    Set ListaGare = Server.CreateObject("ADODB.Recordset")
    ListaGare.open SQL,objConn,3,1
    poi la "popolo"
    codice:
    		Do While Not ListaGare.EOF
    
    		AppoTipoGara = ListaGare("TipoGara")
    %>
    <TR ALIGN=center VALIGN=middle>
    <TD class=c10c><%=ListaGare("Data")%></TD>
    <TD class=c10c><%=AppoTipoGara%><%=ListaGare("id_spec")%></TD>
    <TD class=c10l><%=ListaGare("Denominazione")%></TD>
    <%
    	SQL = "SELECT count(*) as totale"
    	SQL = SQL & " FROM punteggi, giocatori"
    	SQL = SQL & " where Punteggi.CodiceGiocatore = Giocatori.CodiceGiocatore "
    	SQL = SQL & " and Punteggi.CodiceGara = " & listagare("codicegara")
    
    			Set Iscritti = Server.CreateObject("ADODB.Recordset")
    			Iscritti.open SQL,objConn,3,1
    
    			Iscritti.movefirst
    			
    if iscritti("totale") = 0 then
    %>
        <td class="c10c"></td>
    <%
    else
    %>
        <td class="c10c"><%=Iscritti("totale")%></td>
    <%
    end if
    
          Iscritti.Close
    %>
    <td class=c10c><%=listagare("scadenza")%>ore:<%=formatDateTime(listagare("scadenzaora"), vbShortTime)%></td>
    
    <%
    If listagare("scadenza") => (date) AND listagare("scadenzaora") > time() then
    %>
    <td class="c10c">">ISCRIVI</td>
    <%
    else
    %>
    <td class="c10c">ISCRIZIONI SCADUTE</td>
    <%
    end if
    %>
    </TR>
    <%
    			ListaGare.MoveNext
    		Loop
    	end if
    il mio problema è che alla riga
    If listagare("scadenza") => (date) AND listagare("scadenzaora") > time() then
    la pagina non tiene conto della scadenza per data ma solo per ora.
    nel database ho 2 campi, scandeza (che è la data di termine) e ora (ora del termine)
    se l'ora ad esempio è impostata su 12.00 tutte le gare avranno "iscrizioni scadute".
    Invece solo le gare con la data e l'ora come da "if" dovrebbero avere iscrizioni scadute.

    soluzioni?

    grazie

  2. #2
    come prima cosa usa date() e non (date)
    poi dicci come hai memorizzato le date

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    395
    date() sistemato
    le date sono mm/gg/aaaa però se faccio il tutto senza l'ora tutto funziona regolare

  4. #4
    prima di

    If listagare("scadenza") => (date) AND listagare("scadenzaora") > time() then


    metti

    Response.Write "
    " & listagare("scadenza")
    Response.Write "
    " & date()
    Response.Write "
    " & listagare("scadenzaora")
    Response.Write "
    " & time()

    e vediamo quali sono i temini del confronto

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    395
    ecco quello che estrae

    21/01/2010
    09/03/2010
    22.00.00
    20.48.58

    le date sono tutte in formato gg-mm-aaa

  6. #6
    per poterle confrontare come fai tu dovresti averle in formato aaaammgg.

    potresti girarle con una semplice funzione oppure provare ad usare
    IF CDate(listagare("scadenza"))>CDate(Date()) ...
    (se funziona)

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    395
    proverò a girarle o a fare come dici tu.
    ma mi devi spiegare come mai il confronto SOLO fra date funziona alla perfezione mentre se aggiungo anche l'orario le date si incasinano e tiene conto su tutto dell'orario invece che data e ora

  8. #8
    dipende da quello che confronti

    ad esempio per il programma 21/03/2010 sarà maggiore di 09/03/2010, come per noi 'umani'; invece, sempre per il programma, anche 21/01/2010 sarà maggiore di 09/03/2010, mentre invece non lo è

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    395
    ho girato la data in aaaa-mm-gg ma non cambia nulla. tiene sempre conto su tutto dell'ora.

    grazie

  10. #10

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.