Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    111

    problema con prenotazioni

    Ciao a tutti,
    ho un problema con una query per selezionare le prenotazioni attive in una struttura

    questa è la query:
    codice:
    set verifica=conn.execute("select * from prenotazioni where idsistemazione="& idsistemazione&" and (#"&data_da&"# BETWEEN data_da and year(data_fine)/month(data_fine)/day(data_fine)-1 or #"&data_fine&"# BETWEEN year(data_da)/month(data_da)/day(data_da)-1 And data_fine)")
    il risultato è che esiste una prenotazione con questi dati, ma non è vero.
    Se faccio il response mi da questo risultato:
    codice:
    select * from prenotazioni where 12=12 and (2008/7/3 BETWEEN 2008/9/10 and 2008/9/12 or 2008/7/18 BETWEEN 2008/9/9 And 2008/9/13)
    Cosa sto sbagliando?

    Grazie

  2. #2
    se fai la rsponse di che?

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    111
    il response della query, per vedere quale prenotazione rispetta quei parametri:

    codice:
    set verifica=conn.execute("select * from prenotazioni where idsistemazione="& idsistemazione&" and (#"&data_da&"# BETWEEN data_da and year(data_fine)/month(data_fine)/day(data_fine)-1 or #"&data_fine&"# BETWEEN year(data_da)/month(data_da)/day(data_da)-1 And data_fine)")
    
    if not verifica.eof then
    questo è il codice
    codice:
    response.Write("select * from prenotazioni where "&verifica("idsistemazione")&"="& idsistemazione&" and (#"&data_da&"# BETWEEN "&year(verifica("data_da"))&"/"&month(verifica("data_da"))&"/"&day(verifica("data_da"))&" and "&year(verifica("data_fine"))&"/"&month(verifica("data_fine"))&"/"&day(verifica("data_fine")-1)&" or #"&data_fine&"# BETWEEN "&year(verifica("data_da"))&"/"&month(verifica("data_da"))&"/"&day(verifica("data_da")-1)&" And "&year(verifica("data_fine"))&"/"&month(verifica("data_fine"))&"/"&day(verifica("data_fine"))&")")
    e il risultato è:

    select * from prenotazioni where 12=12 and (2008/7/3 BETWEEN 2008/9/10 and 2008/9/12 or 2008/7/18 BETWEEN 2008/9/9 And 2008/9/13)

  4. #4
    io farei

    codice:
    Dim sSQL
    sSQL="select * from prenotazioni where idsistemazione="& idsistemazione&" and (#"&data_da&"# BETWEEN data_da and year(data_fine)/month(data_fine)/day(data_fine)-1 or #"&data_fine&"# BETWEEN year(data_da)/month(data_da)/day(data_da)-1 And data_fine)"
    Response.Write "
    MaGGica SQL...: " & sSQL
    Response.Flush
    set verifica=conn.execute(sSQL)

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    111
    questo è il risultato:

    MaGGica SQL...: select * from prenotazioni where idsistemazione=12 and (#2008/7/3# BETWEEN data_da and year(data_fine)/month(data_fine)/day(data_fine)-1 or #2008/7/18# BETWEEN year(data_da)/month(data_da)/day(data_da)-1 And data_fine)

    non ci vedo niente di sbagliato...

  6. #6
    direi che le date DOPO le BETWEEN sono espresse in modo ben poco ortodosso

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    111
    pensi che sia un conflitto di date?

    ho provato semplificando la query ma niente

    codice:
    sSQL="select * from prenotazioni where idsistemazione="& idsistemazione&" and (#"&data_da&"# BETWEEN data_da and data_fine or #"&data_fine&"# BETWEEN data_da And data_fine)"

  8. #8

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    111
    MaGGica SQL...: select * from prenotazioni where idsistemazione=12 and (#2008/7/3# BETWEEN data_da and data_fine or #2008/7/18# BETWEEN data_da And data_fine)

    mi accetta prenotazioni con date superiori alla data_fine.
    Quelle antecedenti alla data_da di prenotazione me le rifiuta.
    Esempio
    la prenotazione inserita ha come dal 10/09/2008 al 13/09/2008.
    Se inserisco prenotazioni con data superiore al 13/09/2008 le accetta
    se inserisco prenotazioni non data < 10/09/2007 (esempio 03/07/2008 al 18/07/2008) mi dice che c'è già una prenotazione per quel periodo.

  10. #10
    la data gliela devi passare in formato mm/gg/aaaa

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 © 2026 vBulletin Solutions, Inc. All rights reserved.