Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    577

    SELECT CON CONFRONTO PERIODO ORARI

    Buonasera a tutti,

    ho un problema da risolvere:

    in un db access ho una tabella "TABELLA1" che contiente due campi "DAORA" e "AORA" in cui vi sono dei valori es. dalle 12.00 alle 13.30.

    Con una select devo poter controllare il periodo di orari, in modo che il prossimo record inserito non vada a coprire il suddetto range.

    Quindi non devo fare inserire un nuovo record con range di orari che ad esempio sia dalle 12.15 alle 13.10.

    Tuttavia a me serve solo la SQL che mi restituisca 1 se le gli orari (variabili) che gli passo ora1 e ora2 sono compresi tra le 12.00 e le 13.30.

    Sto impazzendo

    Lucia

  2. #2
    Utente di HTML.it L'avatar di Luis33
    Registrato dal
    May 2003
    Messaggi
    975
    .... e noi con te... non si capisce bene qualè il tuo problema...
    ... Sono graditi codes, esempi pratici, suggerimenti, consigli e critiche...
    "Ai posteri l'ardua sentenza..."
    Tante grazie
    Saluti
    Luis 33

  3. #3
    Utente di HTML.it L'avatar di longline
    Registrato dal
    Sep 2001
    Messaggi
    5,363
    Per non avere sovrapposizioni di orari, è necessario che i campi DAORA e AORA nel nuovo record devono essere entrambi minori di DAORA del record vecchio, oppure entrambi maggiori del campo AORA del record vecchio.

  4. #4
    Vuoi inibire l'inserimento di dati nel database qualora l'ora attuale sia compresa in quel range di ore presente già nella tabella del db?
    codice:
    <%
    ora = formatDateTime(time,vbShortTime)
    set conn = server.createObject("ADODB.Connection")
    conn.open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source = " & server.mapPath("\samples\db\db.mdb")
    ' query di controllo
    sql1 = "SELECT campoID FROM tabella1 WHERE daora < #" & ora & "# AND aora > #" & ora & "#"
    set rs = conn.execute(sql1)
    if rs.eof then
    ' non ci sono record corrispondenti e quindi permetti l'inserimento nel db
    response.write "se po fa"
    else
    response.write "Ciccia!"
    end if
    rs.close
    set rs = nothing
    
    conn.close
    set conn = nothing
    %>

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    577
    Grazie Mems,

    credo che la domanda che mi poni sia proprio attinente al mio problema. Tuttavia, avrei anche l'orario di fine periodo e non solo quello di inizio (il tuo "ora").

    Faccio un esempio più pratico:

    DATI ESISTENTI NEL DB (CAMPI DI DATABASE MSACCESS)
    DAORA AORA
    12.00 12.35
    13.12 13.50
    12.02 12.27


    NUOVO PERIODO DA TESTARE (QUINDI DA INSERIRE NEL DB DA FORM)
    ORA INIZIO ORA FINE
    12.10 12.42

    (CON QUESTO PERIODO LA SQL DOVREBBE RESTITUIRMI UN RISULTATO DI STOP IN QUANTO HO GIA' DUE PERIODI NEL DB CHE VANNO UNO DALLE 12.00 ALLE 12.35 E L'ALTRO DALLE 12.02 ALLE 12.27. QUINDI NON POTREI SOVRAPPORLI.
    PERTANTO MI VENGONO DEI DUBBI SULLA SOLUZIONE POSTATA DA MEMS DOVE AD ESSERE TESTATO E SOLO L'ORARIO DI INIZIO.

    Grazie
    Lucia

  6. #6
    Utente di HTML.it L'avatar di longline
    Registrato dal
    Sep 2001
    Messaggi
    5,363
    Usa il codice di Mems, ma con questa SQL:

    sql1 = "SELECT campoID FROM tabella1 WHERE not (daora > #" & aora & "# OR aora < #" & daora & "#)"

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    577
    ORA FORSE POTRO' ANDARE IN FERIE ...

    GRAZIE LONGLINE.

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.