Confronto tra date in sql c#

annalisa

Nuovo Utente
18 Apr 2012
1
0
0
Salve avrei un problema a riportare una query sql funzionante in access in asp.net. 'dataInizio' e 'dataFine' sono nomi di colonne della tabella Prenotazione; praticamente quando apro il datareader è vuoto come mai visto che la sintassi non genera errori?

DateTime d = new DateTime();
d = Convert.ToDateTime(txtData.Text);
int codst;
codst = Convert.ToInt32(txtCodStab.Text);

string q = "SELECT nome, cognome, nomeStabilimento, numOmbrellone FROM Ombrellone, Stabilimento, Relativa_A_Omb,Cliente,Prenotazione WHERE Cliente.CF = Prenotazione.CF AND Ombrellone.codOmbrellone = Relativa_A_Omb.codOmbrellone AND Stabilimento.codStabilimento = Ombrellone.codStabilimento AND Relativa_A_Omb.codPrenotazione=Prenotazione.codPrenotazione AND Stabilimento.codStabilimento=" + codst + "AND '" + d + "' BETWEEN 'dataInizio' AND 'dataFine'";
 
Ciao,

se la sintassi non genera errore probabilmente è sbagliata qualche condizione di join ma io non conosco i dati quindi non posso dirti quale.

Ti consiglio di eseguire la query incrementalmente, prima su una tabella sola, poi su due e così via fino ad individuare dov'è il problema.
 
a occhio mi sembra che qui

BETWEEN 'dataInizio' AND 'dataFine'";

sia sbagliata....mettendo gli apici stai considerando "dataInizio" e "dataFine" come del semplice testo, quindi stai confrontando una data con del testo....se togli gli apici fai riferimento ai campi del database e dovrebbe funzionare.

Ciao.
 
ciao
non conosco sql c#, ma a lume di naso:
betwen cosa?
in php+mysql
WHERE.... AND data BETWEEN 'dataInizio' AND 'dataFine'

unico accorgimento è che le date siano o in timestamp o scritte nel formato YYYY mm dd (2012 10 31) a parte i separatori perche se scritte in "italiano" es.

WHERE.... AND data BETWEEN '31/09/2012' AND '02/10/2012' (betwn confronta anche le stringhe) per cui un caos
 
in mysql o MSSQL il BETWEEN può funzionare....o in questo modo:

'valore' BETWEEN campo1 AND campo2

oppure:

campo BETWEEN 'VALORE1' AND 'VALORE2'

Considerando che Annalisa ha detto che 'dataFine' e 'dataInizio' sono due campi di una tabella andrebbero inseriti nella query senza apice (')
 

Discussioni simili