Newsgroup: it.comp.lang.visual-basic
Titolo: SQL e data

Cia a tutti,
ho un problema con SQL e il valore data:
Quando faccio una query con SQL filtrando con la clausola WHERE un campo
data, non mi trova nulla a meno che io non metto la data in stile
americano..
Es:
SELECT * FROM tabella WHERE MiaData =#08/10/2002# => cosě č come io vorrei
fare la query.
SELECT * FROM tabella WHERE MiaData =#10/08/2002# => cosě č come la vuole
lui.
Come posso fare per risistemare l'SQL in maniera italiana?
Ho provato a reistallare il Data Access Component ITALIANO ma non č
cambiato nulla.
Grazie per l'aiuto
Paolo
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Paolo
su questo argomento si dibatte ogni giorno da anni
cmq il formato della data dipende da cosa usi:
in particolare se stai usando il jet, nelle query di selezione, la data la
devi mettere in formato #mm/dd/yyyy#. Nelle query di inserimento o
aggiornamento puoi usare un formato -stringa-
del tipo 'dd/mm/yyyy'.
In sql server dipende dalla versione: sql server 2000 e' localizzato
completamente e puoi usare la data in formato italiano... sql server 7,
sara' che usa un po di librerie americane e un po italiane, fattosta che
preferisce la data in formato americano, almeno per quello che riguarda le
stored procedures...
alla fine cmq se vai per tentativi ci salti fuori... :-)
giova

 americano..
Altola': di quale database stiamo parlando?
Le date vengono trattate in modi anche molto diversi dai vari database.
Ogni database, poi, mette (o non mette) a disposizione delle funzioni
apposite per trattare con le date.
In ogni caso, quando si parla di sql (e, ad essere pignoli, non e' questo
il ng giusto) e' sempre bene specificare il tipo di database (e, magari,
anche la versione) con cui si opera.
--
ciao, hal
--------------------------------
Inviato via 
http://usenet.libero.it

Il DB in questione è un DB di ACCESS 2000 quindi Jet 4.0.
A proposito io uso ADO ma anche con il DAO è la stessa cosa.
Il fatto è che se faccio il filtro utilizzando il metodo filter del
recordset, tutto funziona tranquillamente, ma se uso esplicitamente SQL,
apriti o cielo, che tutto va come vuole lui.
Ho notato che se faccio una query in Access, in visualizzazione struttura
la data la mette giusta, ma se guardo l'sql che ha fatto la data è in
stile americana.
Ad un mio collega che usa DAO, sempre access 2000, invece capita che:
Ha inserito nella stessa tabella e nello stesso campo alcune date
direttamente dalla DataGrid di un Programma fatto in VB6 e altre date
direttamente da codice con la funzione Date().
Il risultato è che per quelle inserite a mano nella DataGrid funziona la
query con la data all'italiana, mentre per quelle inserite via codice,
nisba, ci vuole la data in inglese.
Come me lo spiegate ?
CiaO


SELECT * FROM tabella WHERE MiaData =#08/10/2002# presumo tu abbia un db
Access. Per fargliela prendere devi fare un format ossia SELECT * FROM
tabella WHERE MiaData =#" & Cdate(Format(08/10/2002,"mm/dd/yyyy")) & "#"
Se invece usi un db SQL SERVER devi mettere l'apice singolo SELECT *
FROM tabella WHERE MiaData ='08/10/2002'.  Ciao

Come me lo spiegate ?
Che usare i controlli bound significa delegare il proprio destino a terzi.
-- 
ciao, hal

 Che usare i controlli bound significa delegare il proprio destino a
terzi.
detta in un ng su un linguaggio ms destinato a un sistema ms... :P
stavo per aggiungere considerazioni psico-socio-civil-militar-ecc-ecc
ma poi mi si arrabbia il birro, e non vorrei per nulla al mondo :)
j.domani.e'.un.altro.giorno?