- Home
- Categorie
- Coding e Sistemistica
- Altri linguaggi per il web
- [SQL] asp query SQL su db access problema con date
-
[SQL] asp query SQL su db access problema con date
ciao a tutti,
ho questo problema con una query che dovrebbe visualizzare tutte le date di una settimana"SELECT * FROM eventi WHERE data >=#"&inizio&"# AND data <=#"&inizio+7&"# ORDER BY data ASC"
dove inizio=cdate(request.querystring("inizio"))
ovvero la data da cui la settimana deve partire che è passata come parametro
ma mi restituisce anche date fuori dalla settimana richiesta.
secondo voi com'è possibile?!
grazie,Marco
-
prova a usare DateAdd("d",7, inizio) invece che inizio + 7. Magari ti sbaglia la somma (E' VB lo script vero?)
-
@sherlock said:
ciao a tutti,
ho questo problema con una query che dovrebbe visualizzare tutte le date di una settimana> "SELECT * FROM eventi WHERE data >=#"&inizio&"# AND data <=#"&inizio+7&"# ORDER BY data ASC" >```dove inizio=cdate(request.querystring("inizio")) ovvero la data da cui la settimana deve partire che è passata come parametro ma mi restituisce anche date fuori dalla settimana richiesta. secondo voi com'è possibile?! grazie, Marco È un problema tipico di Access che non gestisce al meglio le date. Per non avere problemi è uso comune NON utilizzare i campi data ma **semplici campi di testo**. Dovrebbe funzionare senza problemi con la medesima query che hai già indicato. È circa una vita che non uso Access facci sapere come va. Ciao :ciauz:
-
funziona benissimo, ma solo se esplicito le date, ma se metto la variabile "inizio" non mi estrapola i dati...
mah!
aspetto una illuminazione!
grazie,Marco
-
Prova così:
"SELECT * FROM eventi WHERE data >= '"&inizio&"' AND data <= '"&inizio+7&"' ORDER BY data ASC" ```Ad ogni modo se non ti funzionasse ancora stampa la query e controlla che le date stiano a posto
-
Se non risolvi mi mandi la struttura della tabella presa da access e la parte dello script incriminata che la testo?
-
Probabilmente perchè ste stramaledette date sono sempre in formato americano. E quindi mese/giorno/anno.
Fatti una funzione che ti inverte i valori che gli passi.
La tua sintassi va benePuoi usare anche questa:
"SELECT * FROM eventi WHERE data between #"&inizio&"# and #"&inizio+7&"# ORDER BY data ASC"
-
ce l'ho fatta!!!!grazie ai vostri consigli e ad una sana migrazione a SQL server del database
ora mi chiedo, dovendo raggruppare gli eventi di un giorno e fare una vista del tipo01/07/2007
evento a
evento b
02/07/2007
evento c
evento dcome posso fare? con il group by non me lo fa fare (evidentemente:D)
tenendo conto che nella tabella i dati sono
data | evento
01/07/2007 | evento a
01/07/2007 | evento b
02/07/2007 | evento c
02/07/2007 | evento dgrazie!!!!
Marco
-
In genere io faccio una query ordinata per date, poi mentre visito il risultato della query riga per riga faccio la seguente procedura
while (ci sono ancora dati if (vecchiadata <> nuovadata) 'scrivo la nuova data' 'scrivo l'elemento attuale vecchiadata = nuovadata else 'scrivo l'elemento attuale end if
Così ogni volta che cambia la data puoi creare una nuova tabella per raggruppare i nuovi dati.
Un altra soluzione (+ dispendiosa) è fare una query con il DISTINCT sulle date, fare un ciclo sulle date distinte, ed ad ogni giro prendere tutti gli eventi che hanno quella data e scriverli..
(ma qui fai m query al db dove m è il numero di date distinte, mentre con l'altro esempio fai una sola query.)
-
grazie SeraphimFoA!
è la strada giusta per me!
e grazie anche a tutti gli altri per i preziosi consigli!!!Marco