20 messaggi dal 08 novembre 2008
Ho la necessita di estrarre dei dati da una tabella in base al mese ed anno. Ho provato con MOUTH in questo modo

WHERE (Data = MOUTH ('3')) in questo caso marzo ma sembra non funzionare.
Vi è qualche cosa che mi dia la possibilità di poter estrarre dati in base al mese e all'anno impostato da un selettore di data???
Potrei risolvere utilizzando BETWEEN ma non so se andrebbe in errore se imposterei la data per tutti i mesi da 1 a 31 oltre al problema del mese di febbraio se bisestile o meno.
Grazie
Enzo
1.976 messaggi dal 27 luglio 2005
Contributi
salve Enzo,
oldman wrote:
Ho la necessita di estrarre dei dati da una tabella in base al mese ed anno. Ho provato con MOUTH in questo modo

WHERE (Data = MOUTH ('3')) in questo caso marzo ma sembra non funzionare. Vi è qualche cosa che mi dia la possibilità di poter estrarre dati in base al mese e all'anno impostato da un selettore di data???
Potrei risolvere utilizzando BETWEEN ma non so se andrebbe in errore se imposterei la data per tutti i mesi da 1 a 31 oltre al problema del mese di febbraio se bisestile o meno.
Grazie
Enzo

voglio pensare che la funzione sia MONTH(...) e non MOUTH(..)  ad ogni modo, la clausola di where corretta sarebbe
WHERE YEAR(Data) = xx AND MONTH(Data) = yy
se intendi selezionare tutte le righe dell'anno xx e solo del mese yy saluti

Andrea Montanari
http://www.hotelsole.com - http://www.hotelsole.com/asql/index.php
20 messaggi dal 08 novembre 2008
 OPS....

come al solito....grazie Andrea
20 messaggi dal 08 novembre 2008
Questa non l'aspettavo proprio

The function is not recognized by SQL Server Compact Edition.

mi sembra di aver capito che non è possibile con compact edition e quindi mi ritrovo con lo stesso problema. Devo a questo punto impostare l'ultimo giorno del mese di riferimento ed utilizzare "1" BETWEEN l'ultimo giorno impostato se non voglio mettermi a fare calcoli assurdi per sapere il mese di quanti giorni è o altrimenti se c'è qualche altra soluzione al problema......ben venga
Questa e la stringa utilizzata

sql = "SELECT * FROM Turni_Comandati " _
& "WHERE(Year(Data) = " & anno & " And Month(Data) = " & mese & ") " _
& "AND (Macchinista =N'" & CmbMacchinisti.SelectedItem & "')"

cbmMacchinisti.selectedItem contiene il nome e cognome della persona a cui si fa riferimento
anno è l'anno
mese è il mese
308 messaggi dal 13 luglio 2005
Ciao oldman,
prova ad usare la funzione DATEPART, cioè:

sql = "SELECT * FROM Turni_Comandati " _
& "WHERE DATEPART(yyyy, Data) = " & anno & " And DATEPART(mm, Data) = " & mese & ") " _
& "AND (Macchinista =N'" & CmbMacchinisti.SelectedItem & "')"

Fammi sapere, ciao.

Umb
20 messaggi dal 08 novembre 2008
superpippo2005 ha scritto:
Ciao oldman,
prova ad usare la funzione DATEPART, cioè:

sql = "SELECT * FROM Turni_Comandati " _
& "WHERE DATEPART(yyyy, Data) = " & anno & " And DATEPART(mm, Data) = " & mese & ") " _
& "AND (Macchinista =N'" & CmbMacchinisti.SelectedItem & "')"

Fammi sapere, ciao.

Umb


Funziona perfettamente anche se c'è una parentesi in piu dopo 'mese' andrebbe anche bene se avessi iniziato la clausula where con (DATEPART comunque sono sciocchezze.
Ho dovuto affrontare pero un problema differente. Dopo aver caricato la tabella, collegata ad uno stile di griglia utilizzando la funzione application.doevents andava avanti senza fermarsi selezionando un mese alla volta. Ho dovuto eleminare e non fargli vedere se ci fossero eventi in sospeso. MHA, misteri della programmazione. Comunque grazie per la dritta.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.