Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    Date che fanno quello che vogliono...

    Salve a tutti.
    Ho un problema con le date, nel senso che quando richiamo i record ordinandoli per il campo data, me li ordina come meglio ritiene e non invece come andrebbero ordinate. Es. ho 3 record con le date 10/12/2004, 19/12/2004 e 04/01/2005. Richiamo i record mesi in ordine di data e l'ordine che mi dà è questo:
    - 04/01/2005
    - 10/12/2004
    - 19/12/2004

    Non propriamente un ordine giusto.

    Come si può fare per risolvere il problema?

  2. #2

    Re: Date che fanno quello che vogliono...

    Originariamente inviato da Dirk Pitt
    Come si può fare per risolvere il problema?
    Una ricerca nel forum.
    Se ne è parlato in modo spropositato, ultima volta anche oggi.

    Usa il formato iso per le date.

  3. #3
    Ho provato seguendo il consiglio del formato iso che ho trovato sul tuo sito e non ci sono problemi.
    I problemi nascono allorchè estraggo due date dal record e cerco di sottrare una dall'altra. A questo punto mi dà l'errore "Tipo non corrispondente". Ho provato con un isDate sulla variabile e mi dice True, quindi il formato lo legge come data, però non mi sottrae niente e mi dà errore.
    Ho settato il campo data come "testo", questo perchè se settato come "data", non mi permetteva di inserire la data nel formato ISO.

    Come fare? Hai suggerimenti?

  4. #4
    Impostalo come data. Non è possibile che non ti permetta di inserirlo. Se ti crea errori vuol dire che non viene inserita nel modo corretto.

    Ricodarti che in Access il valore di un campo data va delimitato con # mentre ' con MySQL.

  5. #5
    Ho risolto in altro modo ma ora il probelma è un altro.
    Vado di fretta, riposto più tardi.

    Ti ringrazio

  6. #6
    Allora, ho lasciato i campi dove ci sono le date settati come "testo". Nella pagina dove richiamo i record ho inserito questo codice:
    codice:
    data_part       = objRs("data_part")
    data_rit 	= objRs("data_rit")
    data1 		= DateValue(data_part)
    data2 		= DateValue(data_rit)
    
    giorni 		= data2 - data1
    
    giorno_part     = Day(data_part)
    mese_part	= Month(data_part)
    anno_part	= Year(data_part)
    
    If len(giorno_part) < 2 then
    giorno_part = "0" & giorno_part
    Else
    giorno_part = giorno_part
    End if
    
    If len(mese_part) < 2 then
    mese_part = "0" & mese_part
    Else
    mese_part = mese_part
    End if
    
    data_eff_part	= giorno_part & "/" & mese_part & "/" & anno_part
    e quando richiamo la variabile data_eff_part me la riporta giusta con sintassi italiana (gg/mm/aaaa)

    Il problema è che nella pagina richiamo i dati filtrandoli in base alla data >= a oggi, ma mi riporta tutti i record e per lo più nemmeno in ordine di data.
    Questa la query di selezione:

    codice:
     
    data = Date
    oggi = (Year(data) & "/" & Month(data) & "/" & Day(data))
    
    sqlstring = "SELECT id, nome, breve_desc, data_part, data_rit, rif_foto FROM viaggi WHERE data_part>=#" & oggi & "# ORDER BY '#data_part#'"
    Set objRs = Server.CreateObject("ADODB.Recordset")
    objRs.ActiveConnection = objConn
    objRs.Open sqlstring
    
    Do While NOT objRs.EOF
    Il risultato? Guardalo qui. Come vedi i record non sono in ordine (dovrebbero esserlo in base alla data di partenza del viaggio), così come è presente (mentre non dovrebbe esserci) un viaggio con partenza due gg fa.

    Come posso risolvere secondo te?

  7. #7
    Nessuno che abbia un'idea su come aiutarmi?

    Thanks

  8. #8
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Nel link che hai indicato le date le vedo in ordine.

    Roby

  9. #9
    Lo so, ho risolto il prob. dell'ordine.
    Ma se ti dico che nella query ho posto la condizione affinchè la data iniziale del viaggio deve essere superiore o uguale a quella odierna... ecco che non va più bene. Infatti come puoi vedere è presente un viaggio che inizia il giorno 03/01/2005, ovvero 2 gg fa

  10. #10
    Sempre più incredibile!!

    Se nella query

    codice:
    sqlstring = "SELECT id, nome, breve_desc, data_part, data_rit, rif_foto FROM viaggi WHERE data_part>'#" & oggi & "#' ORDER BY data_part"
    sostituisco "=" a ">", ovviamente non mi trova nessun record, quindi funziona.
    Se invece metto "<" mi da dinuovo tutti i record, come se mettessi ">", quindi non funziona.
    Non è che i segni < e > danno fastidio al db? Cosa stranissima tralaltro...

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.