Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    666

    Utilizzo di BETWEEN tra 2 date contentute in 2 campi diversi

    Ciao a tutti, sto provando a realizzare una query che restituisca tutti i campi compresi tra 2 date presenti nel db.

    Il db è strutturato in questo modo

    Id | Info | DataIns | DataPartenza | DataArrivo |
    01 Prova1 01/09/2014 01/09/2014 21/09/2014
    02 Prova2 02/09/2014 10/09/2014 30/09/2014


    Considerato che oggi è 22/09/2014, vorrei visualizzare soltanto i record dove la data di oggi è presente nell'intervallo DataPartenza e DataArrivo


    Ho provato in questo modo:

    Inserisco in una variabile la data di oggi:

    codice:
    <%
       Dim Oggi
       Oggi = FormatDateTime(Now(),2) & " " 
    %>
    Eseguo la query visualizzando solo i record che hanno la data di oggi presente nell'intervallo DataPartenza e Data Arrivo:

    codice:
    Query = "SELECT * FROM Tabella1 WHERE Oggi BETWEEN DataPartenza AND DataArrivo"
    E continuo a ricevere sempre lo stesso errore:


    Microsoft OLE DB Provider for ODBC Drivers error '80040e10' [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.


    Non riesco a capire come dirgli di visualizzare soltanto i record di quell'intervallo.

    AltF4

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Le date sono una delle query più rognose e difficili da realizzare, vuoi perché le date nel database comunque le imposti vengono tramutate in inglese vuoi access non saprei ho sempre trovato difficoltà, in fatti se fai una ricerca qui sul forum vedi quanti post irrisolti trovi.
    Io spesso (quasi sempre) imposto le "date" numeriche nel db le inserisco anno+mese+giorno (20140922) poi eseguo la query cosi:
    DataPartenza = 20140930 DataArrivo = 20140922
    SELECT * FROM Tabella1 WHERE DataPartenza < DataArrivo
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    666
    Quote Originariamente inviata da cavicchiandrea Visualizza il messaggio
    Le date sono una delle query più rognose e difficili da realizzare, vuoi perché le date nel database comunque le imposti vengono tramutate in inglese vuoi access non saprei ho sempre trovato difficoltà, in fatti se fai una ricerca qui sul forum vedi quanti post irrisolti trovi.
    Io spesso (quasi sempre) imposto le "date" numeriche nel db le inserisco anno+mese+giorno (20140922) poi eseguo la query cosi:
    DataPartenza = 20140930 DataArrivo = 20140922
    SELECT * FROM Tabella1 WHERE DataPartenza < DataArrivo
    Ti ringrazio innanzitutto per avermi risposto, ma così facendo dovrei trasformare sempre le date, quando vengono inserite, ma anche quando vengono visualizzate.

    E come potrei farlo?
    AltF4

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Inserimento usi lo split supponendo che il formato si (gg/mm/aaaa) prima di fare l'insert
    Arrivo = split(request("DataArrivo"),"/")(2) & split(request("DataArrivo"),"/")(1) & split(request("DataArrivo"),"/")(0)
    per la visualizzazione come data prelevando il campo DataArrivo (rs=recorset)
    DataArrivo = right(rs("DataArrivo"),2)&"/"&mid(rs("DataArrivo"),4,2)&"/"&left(rs("DataArrivo"),4)



    P.S. ricontrolla la sintassi di asp dato che non scrivo più in asp da un po potrei avere sbagliato qualcosa
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    666
    Quote Originariamente inviata da cavicchiandrea Visualizza il messaggio
    Inserimento usi lo split supponendo che il formato si (gg/mm/aaaa) prima di fare l'insert
    Arrivo = split(request("DataArrivo"),"/")(2) & split(request("DataArrivo"),"/")(1) & split(request("DataArrivo"),"/")(0)
    per la visualizzazione come data prelevando il campo DataArrivo (rs=recorset)
    DataArrivo = right(rs("DataArrivo"),2)&"/"&mid(rs("DataArrivo"),4,2)&"/"&left(rs("DataArrivo"),4)



    P.S. ricontrolla la sintassi di asp dato che non scrivo più in asp da un po potrei avere sbagliato qualcosa
    Praticamente un lavoraccio per uno come me, ora ci provo.

    Grazie per i consigli!
    AltF4

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    666
    Quote Originariamente inviata da cavicchiandrea Visualizza il messaggio
    Inserimento usi lo split supponendo che il formato si (gg/mm/aaaa) prima di fare l'insert
    Arrivo = split(request("DataArrivo"),"/")(2) & split(request("DataArrivo"),"/")(1) & split(request("DataArrivo"),"/")(0)
    per la visualizzazione come data prelevando il campo DataArrivo (rs=recorset)
    DataArrivo = right(rs("DataArrivo"),2)&"/"&mid(rs("DataArrivo"),4,2)&"/"&left(rs("DataArrivo"),4)



    P.S. ricontrolla la sintassi di asp dato che non scrivo più in asp da un po potrei avere sbagliato qualcosa
    Ho provato ad utilizzare la funzione Split, ma con la variabile creata per prelevare la data odierna non funziona, ho fatto così:

    codice:
    <%
       Dim Oggi
       Oggi = FormatDateTime(Now(),2) & " " 
       OggiFormat = split(request("Oggi"),"/")(2) & split(request("Oggi"),"/")(1) & split(request("Oggi"),"/")(0)
      %>
    AltF4

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    666
    Quote Originariamente inviata da AltF4 Visualizza il messaggio
    Ho provato ad utilizzare la funzione Split, ma con la variabile creata per prelevare la data odierna non funziona, ho fatto così:

    codice:
    <%
       Dim Oggi
       Oggi = FormatDateTime(Now(),2) & " " 
       OggiFormat = split(request("Oggi"),"/")(2) & split(request("Oggi"),"/")(1) & split(request("Oggi"),"/")(0)
      %>
    Ho corretto:

    codice:
    OggiFormat = split(Oggi,"/")(2) & split(Oggi,"/")(1) & split(Oggi,"/")(0)
    L'unico problema è che mi da uno spazio dopo l'anno:

    2014 0922

    Sto cercando di eliminarlo.
    AltF4

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    666
    Quote Originariamente inviata da AltF4 Visualizza il messaggio
    Ho corretto:

    codice:
    OggiFormat = split(Oggi,"/")(2) & split(Oggi,"/")(1) & split(Oggi,"/")(0)
    L'unico problema è che mi da uno spazio dopo l'anno:

    2014 0922

    Sto cercando di eliminarlo.
    Risolto anche lo spazio, l'avevo aggiunto io erroneamente in precedenza così:

    codice:
    Oggi = FormatDateTime(Now(),2) & " "

    Dovevo eliminare

    codice:
     & " "
    Scusate la confusione
    AltF4

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    666
    E' possibile che adesso debba impazzire per una variabile?

    codice:
    <%   
       Dim Oggi As Integer()
       Oggi = FormatDateTime(Now(),2)
       Dim OggiFormat As Integer()
       OggiFormat = split(Oggi,"/")(2) & split(Oggi,"/")(1) & split(Oggi,"/")(0)
      %>
    Ricevo il seguente errore e non c'è verso di risolverlo:


    Microsoft VBScript compilation error '800a0401'
    Expected end of statement Dim Oggi As Integer()
    -----------^
    AltF4

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    666
    Non funziona nemmeno se elimino le () dopo Integer:

    codice:
    <%   
       Dim Oggi As Integer
       Oggi = FormatDateTime(Now(),2)
       Dim OggiFormat As Integer
       OggiFormat = split(Oggi,"/")(2) & split(Oggi,"/")(1) & split(Oggi,"/")(0)
      %>
    AltF4

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.