Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di natasha
    Registrato dal
    Sep 2000
    Messaggi
    1,307

    Creazione e confronto di date

    Buongiorno a tutti,
    ho sei valori da form, iGiornoInizio, iMeseInizio, iAnnoInizio e, rispettivamente, iGiornoFine, iMeseFine ed iAnnoFine; devo creare da essi le corrispondenti DataInizio e DataFine, e verificare se una data prelevata da un database Access, memorizzata in formato Data/Ora (sottotipo: "Data in cifre", ovvero gg/mm/aaaa), è compresa fra le due.
    Mi servono solo due cose:

    1) come creare le date a partire dagli interi che rappresentano giorno, mese, anno;
    2) cosa mettere nella BETWEEN della query

    Kisses,

    Nat

  2. #2
    Utente di HTML.it L'avatar di longline
    Registrato dal
    Sep 2001
    Messaggi
    5,363
    codice:
    1)
    GiornoInizio = Right("0" & iGiornoInizio, 2)
    MeseInizio = Right("0" & iMeseInizio, 2)
    DataInizio = CDate(GiornoInizio & "/" & MeseInizio & "/" & iAnnoInizio)
    
    GiornoFine = Right("0" & iGiornoFine, 2)
    MeseFine = Right("0" & iMeseFine, 2)
    DataFine = CDate(GiornoFine & "/" & MeseFine & "/" iAnnoFine)
    
    
    2)
    sql = "SELECT * FROM Tabella WHERE DataDaverificare BETWEEN #" & dataInizio & "# AND #" & DataFine & "#"

  3. #3

  4. #4
    Utente di HTML.it L'avatar di natasha
    Registrato dal
    Sep 2000
    Messaggi
    1,307
    Non ci siamo: se nel database come data da verificare ho 09/12/2005 e metto il 9 dicembre 2005 sia come data di inizio che come data di fine, non mi compare nulla; se come data da verificare ho 09/12/2005 e metto come data di inizio il 5 dicembre 2005 e come data di fine il 10 dicembre 2005, non mi compare nulla (mentre il 9 dicembre 2005 mi compare se metto come data di fine il 12 dicembre 2005); se metto come data di fine il 2 gennaio 2006, mi compaiono fra i risultati anche quelli relativi al 3 gennaio 2006, e così via.
    Altri suggerimenti?

  5. #5
    Utente di HTML.it L'avatar di longline
    Registrato dal
    Sep 2001
    Messaggi
    5,363
    Prova così
    codice:
    1)
    GiornoInizio = Right("0" & iGiornoInizio, 2)
    MeseInizio = Right("0" & iMeseInizio, 2)
    DataInizio = CDate(MeseInizio & "/" & GiornoInizio & "/" & iAnnoInizio)
    
    GiornoFine = Right("0" & iGiornoFine, 2)
    MeseFine = Right("0" & iMeseFine, 2)
    DataFine = CDate(MeseFine & "/" & GiornoFine & "/" iAnnoFine)
    
    
    2)
    sql = "SELECT * FROM Tabella WHERE DataDaverificare BETWEEN #" & dataInizio & "# AND #" & DataFine & "#"

  6. #6
    Utente di HTML.it L'avatar di natasha
    Registrato dal
    Sep 2000
    Messaggi
    1,307
    I miei più vivi complimenti: con la data "all'americana" funziona un amore
    Avrei ora bisogno di un'altra dritta.
    Ora, in DataInizio, DataFine ed objRS("Data") ho memorizzato, per esempio, 05/12/2005.
    Alle volte mi servirebbe di stampare a video questa data come "Lunedì 5 Dicembre 2005".
    Esiste un modo per convertire DataInizio, DataFine ed objRS("Data") in questo formato?

  7. #7
    Io ho appreso un trucchetto fai da "me" per le date.
    I campi li faccio di tipo testo e ci salvo una stringa composta da
    YYYYMMAAHHNNSS
    ovvero
    AnnoMeseGiornoOraMinutiSecondi
    in questo modo posso fare anche le query con BETWEEN, > e < e, volendo, con left prendo anche solo le parti che mi interessano.

  8. #8
    Utente di HTML.it L'avatar di longline
    Registrato dal
    Sep 2001
    Messaggi
    5,363
    Certamente, usando la funzione FormatDateTime().

  9. #9
    Utente di HTML.it L'avatar di longline
    Registrato dal
    Sep 2001
    Messaggi
    5,363
    Originariamente inviato da Mems
    Io ho appreso un trucchetto fai da "me" per le date.
    I campi li faccio di tipo testo e ci salvo una stringa composta da
    YYYYMMAAHHNNSS
    ovvero
    AnnoMeseGiornoOraMinutiSecondi
    in questo modo posso fare anche le query con BETWEEN, > e < e, volendo, con left prendo anche solo le parti che mi interessano.
    So che mi sto mettendo contro un guru di questo forum, ma insisto che il formato data/ora va utilizzato per come è nato, utilizzando le funzioni che già sono state implementate.

    Che poi Mems sia espertissimo e si sia creato tutte le funzioni per gestire le date in formato testo, tanto di cappello, ma questo è un altro discorso.

  10. #10
    Ci mancherebbe che non si debbano usare le funzione sulle date.
    Il mio è solo un sistema per trattare le date in un formato univoco indipendentemente dal db e dalla lingua.

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.