View Full Version : [SQL] SELECT con metà data ...
Come posso fare per fare un "SELECT" su un Database "Access" in un campo "data/ora" esteso(gg/mm/aaaa hh.mm.ss) con solamente i valori (gg/mm/aaaa) ???
cioe':
SELECT * FROM Scadenze WHERE Data = #12/12/2005# sensa considerare i parametri "hh.mm.ss"
chiaramente deve restituire il record che contiene il valore "12/12/2005 12.12.12".
si puo' fare ???
beppegrillo
07-07-2005, 17:58
mi pare esistono funzioni del tipo year() che ti restituisce il mese corrente, sicuramente ce ne sono anche per ore e minuti.
Io utilizzo la funzione DateValue in questo modo
SELECT * FROM Scadenze WHERE Data = DateValue('12/12/2005')
...e funziona.
Ciao.
SELECT * FROM Table WHERE LEFT(CampoData,10) = #12/12/2005#
--------------------------------------------------------------------
Scusa!!!
un ultima cosa :
per fare un "SELECT" su una porzione di testo contenuta in un campo di tipo testo "Testo" come devo fare ???
SELECT * FROM TB WHERE Scadenza LIKE '%mio_testo_da_trovare%'
solo che il LIKE NON c'e' su Access .....
motogpdesmo16
08-07-2005, 11:05
@race2: il like c'è su access ed è anche una funzione di ricerca molto importante.
SELECT cognome FROM Persone WHERE cognome like 'Ros%'
questo esempio estrae tutti i cognomi che iniziano con Ros.
ci sono altre tipologie di like:
1- LIKE 'xyz%' (come l'esempio precedente) ricerca le stringhe che iniziano con xyz
2- LIKE '%xyz' ricerca le stringhe che finiscono con xyz
3- LIKE '%xyz%' ricerca le stringhe che comprendono all'interno xyz
4- LIKE '_xyz' ricerca le stringhe di 4 caratteri (ad esempio) che finiscono con xyz.
Non dovrei avere dimenticato nessuna "tipologia" di like.
Nel tuo caso devi usare la tipologia 3 che, applicata al codice di esempio sql che ti ho inserito diventa:
SELECT cognome FROM Persone WHERE cognome like '%ros%'
riguardo il problema del data/ora ti consiglio di usare il DateValue, come ha indicato qualcuno prima.
Spero di averti aiutato.
@race2:
riguardo il problema del data/ora ti consiglio di usare il DateValue, come ha indicato qualcuno prima.
Spero di averti aiutato.
SELECT * FROM Scadenze WHERE LEFT(Data,10) = #12/12/2005#
tutto OK!
grazie mille per tutto!!
AttilaxXx
13-07-2005, 11:07
a proposito di date ormai che ci siamo posso chiedere una cosa? ;)
E se volessi che la query mi evidenziasse le ultime 5 date mentre le altre no?
Come potrei fare?
Vi prego help!!!
PS:naturalmente se poi nella tabella mettessi altre date le vecchie non dovrebbero comparire nella query e al loro posto dovrebbero invece comparire le nuove voci....come se fa????
Sto usando la voce "max" nei criteri ma nn va nulla....l SQL non lo conosco bene...ho provato de tutto...
HELP PLEASE.....
Scusate se riesumo questa discussione ma manca solo un dettaglio:
SELECT * FROM Scadenze WHERE LEFT(Data,10) = #12/12/2005#
mi serve estrarre in base solamente al "giorno", come posso fare ?
Suppongo:
SELECT * FROM Scadenze WHERE DAY(Data) = 12;
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.