Newsgroup: it.comp.lang.visual-basic
Titolo: [Sql] - Maledetta clausola Between...dati tagliati ...

Allora allora allora ..
Vedo di spiegarmi .. :)
Faro' una domanda alla volta ...sperando che mi rispondiate in fretta :))
"Select Porci from Cani where dataNascita between #12/01/2003# AND
#11/03/2004"
E' corretto?


no, manca un cancelletto alla fine... ;-)


Tanto per iniziare, campi usati nel clausola "where" deve esserci nel 
select.
Poi, tempi aprono multi problemi con aspetti I16N, per esempio li sopra 
in certi paese la data sarebbe fra il primo dicembre e il terzo di 
novrembre. Poi utilizzare il formatto Timestamp? "YYYYMMDD".

 novrembre. Poi utilizzare il formatto Timestamp? "YYYYMMDD".
Visto il formato con # credo utilizzi access, quindi MM/DD/YYYY


A parte gli scherzi, sintatticamente è corretto (a parte il # alla fine), se
il tuo problema è che non ti torna nulla è sicuramente per il formato delle
date, ma comunque passa alla seconda domanda....


E questa stronzata chi te l'ha raccontata?
-- 
Saluti
Andrea Moro

 E questa stronzata chi te l'ha raccontata?
azz...cosě a freddo senza mezzi termini? Sei uno che va subito al sodo....
;-)

 novrembre.
Assolutamente no... se utilizzi i cancelletti la data viene considerata
sempre come #mm/dd/yy#


Non so bene...credo di non riuscire bene a capire nemmeno io comsa
succede...
In pratica con questo tipo di clausola il risultato non è del tutto
corretto.
Faccio un esempio
12/3/2001
 13/3/2001
14/3/2001
15/3/2001
16/3/2001
17/3/2001
18/3/2001
19/3/2001
20/3/2001
Select data from calendario where data between #13/3/2001# and #19/3/2001#.
Mi appare il 13 ma non mi appare il 19 ...
perche'? ;:)
So che non è molto chiaro come lo sto esponendo ma credetemi...è da
stamattina che ci combatto e ...sono una cifra confuso anche io ...
vado a fumare una sigretta va ...
Akuma

 Akuma


I we talking about ANSI SQL or some specific implementation?

Akuma wrote:
[...]
Arghhhhh!
la forma con # è _sempre_ #mm/dd/yy#!

 I we talking about ANSI SQL or some specific implementation?
Akuma talk about Microsoft Access (because he use # delimiter)


infatti come gli ho detto nell'esempio funge solo perchè ha usato numeri >12

Communque, a rischio di fare stronzzato (scusate ma non uso Jet....), se 
hai un 'DateTime' e espreme solo la data, il tempo va da default a 
00:00:00, e volta questa fa confusione:
12/3/2003 03:04:00
13/3/2003 03:04:00
14/3/2003 03:04:00
15/3/2003 03:04:00
una Data BETWEEN 12/3/2003 e 15/3/2003 non include l'ultimo valore.


 sodo.... ;-)
:) Diciamo solo che ad una affermazione palese rispondo con una
risposta "palata"
-- 
Saluti
Andrea Moro

 I we talking about ANSI SQL or some specific implementation?
In what version of ansi sql specification there's a similar rule?
"Tanto per iniziare, campi usati nel clausola "where" deve esserci nel
select"
Are you confusing with group by statement?
By the way, in this NG almost 90% of questions are about MSAccess based
database.

Attenzione prego :))
C'havete perfettamente raggione :))
'sta cosa no' 'a sapevo :))
ihihhi
Ecco il perche' dei dati bizarri :))
Le date erano sbagliate :))
Utilizzero' le date in formato #dd/mm/yy# come mi avete suggerito :)))
...e poi dicono che fumare fa male ... :))
Akuma


E FA MALE SI'!!!!!  #MM/DD/YY#

 ...e poi dicono che fumare fa male ... :))
Appunto! ;)

SELECT * FROM Anagraficafornitori  where RagSocFornitore like '%" & Text3 &
"%' and '" & Text4 & "' order by Ragsocfornitore;"
E ci siamo ...
La lista a cui applico questa sql è
Adamo
adesso
ancora
banca
baldo
caldo
cane
corso
Se in text1 scrivo "Ade" e in text2 scrivo "ban"
perche' mi appare solo "Adesso" ?


Ragazzo mio ma cosa metti nelle sigarette?!? (ne vorrei un po' anch'io....)
Rileggi cosa hai scritto....

 
No, in efetti mi sta confondendo con filtri implementato con cursore 
locale dove i dati sono richiamato da un RDMS. In tale casi il query 
deve richiamare tutti i campi che verrà necessario per l'elaborazione 
locale.

 locale.
Alla faccia dell'ANSI sql! ;-)


Forse voleva 'like...' OR 'like.....'
In qualunche caso l'operatore AND, OR etc. sono operatore boolean, non 
poi estenderdere lo 'like' con pui argumenti. "ban" non é 0 quindi sia 
Vero al punto di vista logico.
(like %Ade%) AND (like %ban%) = NULL
(like %Ade%) AND (like  %so%)= Adesso
(like %Ade%) OR (like  %so%)= Adesso,corso
(like %Ade%) OR (like %ban%) = Adesso,Banco
Io fumo Amphora regular nella mia pipa. Tobacco olandese, non so se 
quella ha qualché rilevanze.

 
E tu non lo dice mai le stronzate!!!!!

 E tu non lo dice mai le stronzate!!!!!
I was joking... 
http://www.dtcc.edu/cs/rfc1855.html
 did you see emoticon?
By the way when you do a question in italian you shoud use question mark
"?"... I think it's the same for english! ;-)
TrollOMeter TM
0123456789ABCDEF
----------X-----