Ricerca attraverso il campo tipo data

giovedì 29 novembre 2007 - 09.24

lucalentino Profilo | Junior Member

Ho un campo data in cui vorrei fare la ricerca non su tutta la data, ma su una singola parte.
Esempio vorrei ricercare tutti i record che hanno mese 10

M@LKAV Profilo | Junior Member

SELECT * FROM NOME_TABELLA
WHERE MONTH(CAMPO_DATE ) = MESE

lucalentino Profilo | Junior Member

Mi spiego meglio
il mio campo data è del tipo 10/10/2007

io vorrei da questo campo cercare tutti i record che hanno, ad esempio anno 2007

alx_81 Profilo | Guru

>Mi spiego meglio
>il mio campo data è del tipo 10/10/2007
Ciao!
>
>io vorrei da questo campo cercare tutti i record che hanno, ad
>esempio anno 2007
Qual è il tipo di dato del campo? Datetime? o stringa? se il datatype scelto è di tipo datetime, mi serve sapere che DBMS utilizzi.
Ciao!

Alx81 =)

http://blogs.dotnethell.it/suxstellino

lucalentino Profilo | Junior Member

>Qual è il tipo di dato del campo? Datetime? o stringa? se il
>datatype scelto è di tipo datetime, mi serve sapere che DBMS
>utilizzi.

Utilizzo Access 2007. Il capo è di tipo Data/Ora

alx_81 Profilo | Guru

>Utilizzo Access 2007. Il capo è di tipo Data/Ora
Allora confermo l'opzione proposta da M@LKAV.

Per l'anno puoi fare, ad esempio, come dice M@LKAV:
SELECT * FROM Tabella WHERE YEAR(campodata) = 2007

Con questa utilizzi le funzioni DAY(), MONTH(), YEAR(), ... per ricavare la parte della data nel filtro.
In alternativa puoi usufruire della funzione DATEPART(parte, campo):

SELECT * FROM Tabella WHERE DATEPART("yyyy",campodata) = 2007

ciao!
Alx81 =)

http://blogs.dotnethell.it/suxstellino

lucalentino Profilo | Junior Member

Immetendo anche solo un numero ad esempio, 2 voglio che mi cerca tutti i record la cui data contiene quel numero-

alx_81 Profilo | Guru

>Immetendo anche solo un numero ad esempio, 2 voglio che mi cerca
>tutti i record la cui data contiene quel numero-
Allora la richiesta è diversa..
tu vuoi controllare che il numero appaia nella data.. non vuoi controllare anno, mese o giorno..
In questo caso puoi utilizzare le due funzioni di ACCESS:
- Str, per convertire
- InStr, per controllare se il carattere esiste

ad esempio:
SELECT * FROM Tabella WHERE InStr(Str(campodata),'2')

Con questa ricavo tutte le date la cui rappresentazione in stringa ha il carattere 2 al suo interno.
Alx81 =)

http://blogs.dotnethell.it/suxstellino

lucalentino Profilo | Junior Member

Quando non so a priori che numero inserisco come si va?

alx_81 Profilo | Guru

>Quando non so a priori che numero inserisco come si va?
devi usare i parametri:
SELECT * FROM Tabella WHERE InStr(Str(campodata),[numero])

eseguendo questa query ti verrà richiesto da input il valore da immettere..
Alx81 =)

http://blogs.dotnethell.it/suxstellino
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 !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5