Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18

Discussione: Database... perchè?

  1. #1

    Database... perchè?

    Ciao, ho un problema (sai che novità ):
    se io faccio un query database così:
    SELECT * FROM concerti ORDER BY giorno, evento

    ottengo tutti i dati del database... tra cui:
    01/07/2002 - 90
    02/07/2002 - 91
    03/07/2002 - 92
    04/07/2002 - 93
    05/07/2002 - 94
    06/07/2002 - 95
    07/07/2002 - 96
    08/07/2002 - 50
    08/07/2002 - 97
    09/07/2002 - 51
    10/07/2002 - 52
    11/07/2002 - 53
    12/07/2002 - 54
    13/07/2002 - 55
    13/07/2002 - 56
    14/07/2002 - 1
    15/07/2002 - 2
    16/07/2002 - 3
    17/07/2002 - 4
    18/07/2002 - 5
    19/07/2002 - 6
    20/07/2002 - 7
    21/07/2002 - 8
    22/07/2002 - 9
    23/07/2002 - 10
    24/07/2002 - 11
    25/07/2002 - 12
    26/07/2002 - 13
    27/07/2002 - 14
    28/07/2002 - 15
    29/07/2002 - 16
    30/07/2002 - 17
    31/07/2002 - 18
    01/08/2002 - 19
    02/08/2002 - 20
    03/08/2002 - 21
    04/08/2002 - 22
    05/08/2002 - 23
    06/08/2002 - 24
    07/08/2002 - 25
    08/08/2002 - 26
    09/08/2002 - 27
    10/08/2002 - 28
    11/08/2002 - 29
    12/08/2002 - 30

    se invece la query la faccio così:
    SELECT * FROM concerti WHERE giorno = #01/07/2002# ORDER BY giorno, evento

    non ottengo nessun risultato.
    C'è da specificare che il campo "giorno" è un campo data.
    se sostituisco, nella query #01/07/2002# con #14/07/2002# allora mi restituisce il valore "1" che corrisponde realmente a quella data.

    Perchè con alcune date funziona, mentre con altre no?

    Grazie e buona giornata a tutti

  2. #2
    Utente di HTML.it L'avatar di keko
    Registrato dal
    Jul 2000
    Messaggi
    64
    Di sicuro la query ti passa il valore della data con mese e giorni invertiti.

    Prova a scrivere cosi' per controllo:

    SELECT * FROM concerti WHERE giorno = #07/01/2002#

    Così va ?

  3. #3
    Utente di HTML.it L'avatar di keko
    Registrato dal
    Jul 2000
    Messaggi
    64
    Infatti in teoria con le date con giorni inferiori a 13 non ti va, mentre con giorni superiori od uguali a 13 ti funziona.

    Questo perchè i mesi sono 12, quindi trovando un mese superiore a 12 lo passa come giorno facendoti funzionare la query.

    Credo sia solo un problema di impostazioni di formato delle date.

  4. #4
    eggià! hai proprio ragione. quindi devo prendere la data, smontarla e ricomporla in formato americano!

    Un altra domanda... come faccio a sapere se una data è precedente o meno ad oggi?

    Grazie ciao

  5. #5
    Utente di HTML.it L'avatar di keko
    Registrato dal
    Jul 2000
    Messaggi
    64
    Non serve smontarla.
    Siccome la data la ricava dal calendar (se ho capito bene) quando la passi alla query fai cosi:

    "SELECT * FROM concerti Where giorno = #" & FormatDateTime(#01/07/2002#, DateFormat.ShortDate) & "#"

    Ovviamente al posto di #01/07/2002# ci metterai la variabile a cui avrai assegnato il valore recuperato dal controllo Calendar

    In questo modo

    Dim giorno As DateTime

    giorno = 'qui recuperi il valore dal tuo calendario

    ' poi lo assegni alla query formattando la data
    "SELECT * FROM concerti Where giorno = #" & FormatDateTime(giorno, DateFormat.ShortDate) & "#"

    Così non dovresti avere piu' problemi.

  6. #6
    fantastico, grazie mille!

  7. #7
    Ciao, se io metto #01/07/2002# funziona, ma se io metto il nome della variabile (che è datetime) non funziona!
    Come mai?

  8. #8
    Utente di HTML.it L'avatar di keko
    Registrato dal
    Jul 2000
    Messaggi
    64
    Per chiarezza:

    Le variabili di tipo Date vengono memorizzate come valori integer di 64 bit (8 byte) conformi alle specifiche IEEE che rappresentano le date comprese nell'intervallo tra l'1 gennaio dell'anno 1 e il 31 dicembre dell'anno 9999 e le ore comprese tra le 0.00.00 (mezzanotte) e le 23.59.59.

    I valori Date devono essere racchiusi tra simboli di cancelletto (#) e devono assumere il formato m/d/yyyy, ad esempio #5/31/1993#. Se si converte un valore Date nel tipo String, il rendering della data viene eseguito in base al formato data breve riconosciuto dal computer, mentre quello dell'ora viene eseguito in base al formato dell'ora corrente sul computer in uso (formato di 12 o 24 ore).

  9. #9
    Utente di HTML.it L'avatar di keko
    Registrato dal
    Jul 2000
    Messaggi
    64
    Sicuro che la tua variabile datetime è una data ?

    Se non è cosi' la funzione FormatDateTime non viene eseguita

  10. #10
    no, io le ho troncato le ore!

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.