Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
SQL SERVER EXPRESS 2008 R2 Lavorare con le date
venerdì 10 febbraio 2012 - 11.35
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
VB.NET
|
SQL Server 2008 R2
Feroxis
Profilo
| Junior Member
80
messaggi | Data Invio:
ven 10 feb 2012 - 11:35
Ho un problema, le ricerche con le date con parametro singolo mi vengono, il problema è se alla ricerca voglio dare più di un valore sulle date.
questa la parte del codice in questione
myconn.ConnectionString = info.stringaconn
mycomm.Connection = myconn
mycomm.CommandText = "SELECT * " & _
"FROM " & info.tabprenotazioni & "" & _
"WHERE (DataIni BETWEEN @DataStart AND @ Datafinet) AND (DataFin BETWEEN @Datainit AND @DataFinal)"
mycomm.Parameters.Add("@DataInit", SqlDbType.DateTime).Value = dataini
mycomm.Parameters.Add("@Datafinet", SqlDbType.DateTime).Value = datafine
mycomm.Parameters.Add("@DataStart", SqlDbType.DateTime).Value = info.initlicenza
mycomm.Parameters.Add("@DataFinal", SqlDbType.DateTime).Value = info.finelicenza
Immaginate un ordine di una stanza o di un ombrellone o di qualcosa da affittare.
cerco di selezionare i record dove il valore della data iniziale della prenotazione è compreso fra data finale e con valore minimo 01/01/2012 dato da info.initlicenza
e dove il valore di fine prenotazione è compreso fra di quello iniziale e massimo 12/31/2012 dato da info.finelicenza
avendo posto prima che il valore iniziale è per forza minore di quello finale dovrei avere come risultato qualsiasi prenotazione che possa sovrapporsi a quella che si sta cercando di fare per esempio.
l'errore è dato in prossimità di BETWEEN non posso dirvi altro perchè l'errore più di questo non specifica.
Infine per dubbio personale BETWEEN è una formula pari a Y < X < Z o Y<= X <= Z?
boccia75
Profilo
| Junior Member
109
messaggi | Data Invio:
ven 10 feb 2012 - 14:31
Ciao!
Perchè non provi a visualizzare la query che cerchi di eseguire?
A me puzza tanto questa parte:
"FROM " & info.tabprenotazioni & "" & _
io metterei uno spazio tra i due doppi apici e quindi
"FROM " & info.tabprenotazioni & " " & _
Per quanto riguarda la seconda domanda, between lavora in questo modo:
Y between X and Z è equivalente a
X<=Y<=Z
Ciao.
Feroxis
Profilo
| Junior Member
80
messaggi | Data Invio:
ven 10 feb 2012 - 14:57
il problema non è in info.tabprenotazione ma sotto
info è una classe dove sono racchiuse le informazioni principali. e info.tabprenotaziona = "nometabella"
se utilizzo la query
SELECT * FROM info.tabecc ecc mi da tutti i risultati quindi non ci sono problemi fino a qui.
se provo ad inserire WHERE non restituisce nulla.
Ho provato ad utilizzare il query editor di Management Studio, e li funziona.
Ho ricontrollato le date: SQl Tabella = DateTime Campo DataInie DataFin
Le variabili assegnate alle date sono di formato DateTime
boccia75
Profilo
| Junior Member
109
messaggi | Data Invio:
ven 10 feb 2012 - 15:14
Scusa, prima hai detto che ti dava un errore e non che il risultato era vuoto....
Qual'è il problema?
Un errore oppure un risultato vuoto?
Ciao.
PS
Se fai una print.CommandText (adesso non so la sintassi...) che risultato (query) ottieni?
Feroxis
Profilo
| Junior Member
80
messaggi | Data Invio:
ven 10 feb 2012 - 15:22
Se chiedo di cercare tutto mi trova tutti i risultati e va bene,
Se cerco di ottenere una data fra 2 termini va bene.
Se di ottenere 2 date fra 2 termini non mi da alcun risultato.
boccia75
Profilo
| Junior Member
109
messaggi | Data Invio:
ven 10 feb 2012 - 15:42
Allora non c'è errore si sintassi, il problema è il set di risultati che non è quello che ti aspettavi.
A questo punto sarebbe meglio se facessi qualche esempio dei dati presenti in tabella e laquery che cerchi di eseguire, così riesco a capire perchè la query non lavora correttamente.
Ciao
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !