- Home
- Categorie
- Coding e Sistemistica
- Coding
- [SQL] asp query SQL su db access problema con date
- 
							
							
							
							
							
[SQL] asp query SQL su db access problema con dateciao 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 ifCosì 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