Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di agenti
    Registrato dal
    Feb 2002
    Messaggi
    2,427

    errore query con date dentro ciclo

    hello...


    ho questo codice:
    For week_1= CDate(data1SQL) to CDate(data2SQL) step 1

    i=1
    Set rs_2 = Server.CreateObject("ADODB.Recordset")
    strSql_2="SELECT * FROM mia_tab WHERE id=24 AND (dal<=#"&week_1&"# AND al>=#"&dateadd("d",week_1,i)&"# )"
    rs_2.open strSql_2, conn
    if rs_2.eof then
    response.write "errore" & "
    "
    response.write strsql_2 & "
    "
    else
    mostra record

    next

    succede che se controllo una data all'interno del mese ad esempio:

    tra il 20/06/2005 e il 25/06/2005
    i risultati appaiono normalmente

    al contrario se cerco tra una data a cavallo tra due mesi ad esempio:

    30/06/2005 e il 02/07/2005

    il rs_2 non trova record e diventa rs_2.eof


    ho tsampato le query con uan richiesta tra il 30/06/06 e il 02/07/05

    il risultato è questo:

    SELECT * FROM mia_tab WHERE id=24 AND (dal<=#30/06/2005# AND al>=#01/07/2005# )
    visualizzo risultato

    SELECT * FROM mia_tab WHERE id=24 AND (dal<=#01/07/2005# AND al>=#02/07/2005# )
    errore

    non capisco dove sia il problema..
    ho anche provato a creare una query direttamente da access e va...
    ile date sono in formato ansisql (yyyy/mm/gg )anche se stampate si visualizzano normalmente.

    accetto consigli.
    Grazie.

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Dalle tue query non sembra che le date siano nel formato da te indicato.

    Roby

  3. #3
    Utente di HTML.it L'avatar di agenti
    Registrato dal
    Feb 2002
    Messaggi
    2,427
    Ciao rob...
    in effetti è vero... c'era un errorino

    ma adesso ho corretto....
    assegnando questi valori
    data1sql = #2005/06/30#
    data2sql = #2005/07/02#

    ma stranamente a video ottengo sempre...

    30/06/2005
    02/07/2005

    la query quindi va sempre in errore...
    come risolvere?

  4. #4
    Utente di HTML.it L'avatar di agenti
    Registrato dal
    Feb 2002
    Messaggi
    2,427
    ribadisco il problema...


    <%
    gg=request("gg")
    mm=request("mm")
    gg1=request("gg1")
    mm1=request("mm1")

    data1sql= 2005 & "/" & mm & "/" & gg
    data2sql= 2005 & "/"& mm1& "/" & gg1

    For week_1 = cdate(data1sql) to cdate(data2sql) step 1
    i=1
    Set rs_2 = Server.CreateObject("ADODB.Recordset")
    strSql_2="SELECT * FROM mia_tab WHERE id_htl=24 AND dal<= #"&(week_1)&"# and al >= #"&dateadd("d",(week_1),i)&"#"
    rs_2.open strSql_2, conn
    if rs_2.eof then
    response.write "errore" & "
    "
    response.write strsql_2
    else

    %>
    <div style="width:100%;color:#000080;border-bottom:1px dotted;border-bottom-color:#ccc;padding:2px;font:70%tahoma">
    <%response.write dateadd("d",week_1,i)%>
    </div>
    <%
    %>

    <%end if%>
    <%next%>

    risultato...

    01/07/2005 (vedo il dato)
    SELECT * FROM listino1 WHERE id_htl=24 AND dal<= #01/07/2005# and al >= #02/07/2005#errore
    SELECT * FROM listino1 WHERE id_htl=24 AND dal<= #02/07/2005# and al >= #03/07/2005# errore

    le date sono sempre in formato normale non ansi sql anche se ho impostato i valori in questo modo

    data1sql= 2005 & "/" & mm & "/" & gg
    data2sql= 2005 & "/"& mm1& "/" & gg1

    vorrei cpairci qualcosa....

  5. #5
    Utente di HTML.it L'avatar di Luis33
    Registrato dal
    May 2003
    Messaggi
    975
    Perchè non utilizzi una funzione, invece di
    codice:
    data1sql= 2005 & "/" & mm & "/" & gg 
    data2sql= 2005 & "/"& mm1& "/" & gg1
    Mi sembra più affidabile:

    codice:
    function convertDate(theDate)
    if isDate(theDate) then
    theYear = datePart("yyyy",theDate)
    theMonth = datePart("m",theDate)
    theDay = datePart("d",theDate)
    if theMonth < 10 then theMonth = "0" & theMonth
    if theDay < 10 then theDay = "0" & theDay
    convertDate = theYear & "/" & theMonth & "/" & theDay
    end if
    end function
    ... Sono graditi codes, esempi pratici, suggerimenti, consigli e critiche...
    "Ai posteri l'ardua sentenza..."
    Tante grazie
    Saluti
    Luis 33

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.