Acquista i nostri libri consigliati su Amazon.it
+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 3 su 3

Query confronto date

  1. #1
    amolaplay non è in linea Scolaretto
    Ciao a tutti
    Chiedo aiuto per la risoluzione di una query che interessa un confronto tra date.
    Il punto è questo: la query deve effettuare un confronto tra valori contenuti in 2 colonne:
    Colonna1= DataIn
    Colonna2= DataFin

    La mia difficoltà consiste nel fatto che:

    DataIn è memorizzata automaticamente su timestamp nel formato data/ora (gg/mm/aaaa hh.mm.ss)
    DataFin, trattandosi di una data immessa manualmente, è un campo di testo (memorizzata comunque nel formato gg/mm/aaaa)

    Siccome è necessario che DataFin>DataIn, ho cercato di creare una query su Access2007 al fine di individuare eventuali errori; ho usato la seguente sintassi:

    SELECT db_Letture.*
    FROM db_Letture
    Where (Cdate(DataFin)<Date(DataIn));

    Essendomi stato restituito un errore di conversione sui campi Null, ho immesso ulteriori condizioni al fine di escludere i campi vuoti:
    SELECT db_Letture.*
    FROM db_Letture
    Where (DataIn<>Null) AND (DataFin<>Null) AND (Cdate(DataFin)<Date(DataIn));

    ma anche in questo caso la query non funzionava.
    Ho quindi provato la funzione Cdate anche sul campo data/ora:

    SELECT db_Letture.*
    FROM db_Letture
    Where (DataIn<>Null) AND (DataFin<>Null) AND (Cdate(DataFin) < Cdate(Left(DataIn,10)));

    Ma anche in questo caso la query non andava ("Tipi dati non corrispondenti").
    Qualcuno può suggerirmi come effettuare il confronto tra i valori delle 2 colonne?
    Ovviamente grazie a chiunque interverrà

  2. #2
    L'avatar di @Alex
    @Alex non è in linea Moderatore Globale
    Hai fatto un pò di confusione...
    SELECT db_Letture.*
    FROM db_Letture
    Where DataFin<Fix(DataIn);
    
    ℹ️ Leggi di più su @Alex ...

  3. #3
    amolaplay non è in linea Scolaretto
    Alex, grazie per la celere risposta... ma non funzia.
    La select mi restituisce righe che non sono quelle sperate, ovvero DataFin<DataIn.
    Da una analisi veloce sul risultato della query mi pare che restituisca tutte le righe per cui quanto memorizzato come gg in DataFin (che ricordo è un campo di testo) risulta minore del gg in DataIn (campo data/ora). In tal modo però il risultato contiene sia DataFin>DataIn che DataFin<DataIn
    Forse la funzione fix esesgue il confronto troncando il contenuto del DataIn al carattere "/"?

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Confronto date
    Da Axon nel forum Delphi
    Risposte: 6
    Ultimo Post: 28-07-2016, 13:06
  2. Aiuto per query con confronto date
    Da CESABAS nel forum Microsoft Access
    Risposte: 8
    Ultimo Post: 08-02-2015, 12:54
  3. Risolto: Confronto date
    Da glak nel forum Visual Basic .Net
    Risposte: 8
    Ultimo Post: 09-02-2011, 16:04
  4. Confronto fra date in SQL
    Da Occhi da orientale nel forum Microsoft Word
    Risposte: 1
    Ultimo Post: 28-11-2009, 14:31
  5. [ASP 3.0] Confronto date
    Da kaste81 nel forum ASP 3, ASP .Net
    Risposte: 8
    Ultimo Post: 06-12-2005, 14:59