Operatore between...and...in un db.mdb

lunedì 12 aprile 2010 - 22.31

bobo89 Profilo | Junior Member

buona sera a tutti averi un problemino con questo tipo di operatore.

Spiego subito il problema, io insersco in una tabella SERVIZI il tipo di servizio da svolgere e una data di inizio e una data di fine. ( i servizi hanno durata che va da 1 anno a 5anni).
pongosubito un esempio nella mia tabella ci sono i seguent dati:

SERVIZIO PERSONA DATA inizio DATA fine
-redazione piero 01/01/2010 01/01/2011
-redazione mario 01/08/2010 01/08/2011


adesso devo esportare in un DGV questi dati con questo criterio
dato ke ogni servizio puo essere svolto da più persone contemporaneamente, a me serve importare nel DGV il nome delle persone che nella data odierna(Now.Date) stanno svolgendo quel compito.

se Now.Date va da 01/01/2010 a 31/07/2010 mi dovra comparire solo il nome piero (in quanto mario non ha iniziato in questo periodo di tempo il suo servizio)
se Now.Date va da 01/08/2010 a 31/10/2010 mi dovranno comparire i nomi mario e piero
se Now.Date va da 01/01/2011 a 31/07/2011 mi dovra comparire solo mario


(Spero di Aver reso l idea di quello che volevo dire)

Per fare qst niente di meglio ke un selct
quindi : select persona from servizi where 'now.date' BETWEEN 'data inizio' AND 'data fine'


questa query non mi funziona!!!
Come posso fare???
dai diversi tentativi mi è parso di capire che la between lavora su una stessa colonna e non su colonne diverse....(oppure ho capito male???)
Chi mi aiuta in questo mio problema???!
Grazie mille!
Piero

Giuseppe_gzp Profilo | Newbie

ciao,

si la between funziona solo su valori della stessa colonna,

prova a fare questa query

select persona from servizi where datediff(d,getdate(),datainizio)>=0 AND datediff(d,getdate(),datafine)<=0

l'ho buttata cosi, non so se funzionerà

fammi sapere ciao!;)

bobo89 Profilo | Junior Member

Ciao,
Avevo gia provato in quel modo ma niente non funziona!!
la soluzione l ho trovata!!! ho fatto in questo modo
inserisco la la data ne l formato mese anno
in 2 combox diverse
uno per il mese numeri da 1 12 e l ltro l anno. poi il codice è il seguente:
-----------------------------------------------------------------------------------------------------------------------------------------

If csServizi.Text = "CRE-Equipe" Then

Dim MyConn As OleDbConnection
Dim MyCMd As OleDbCommand
MyConn = New OleDbConnection

Dim MyRead As OleDbDataReader

MyConn.ConnectionString = "Provider = Microsoft.Jet.OleDB.4.0;Data Source = C:\END.A.mdb"
MyConn.Open()

MyCMd = MyConn.CreateCommand
MyCMd.CommandText = "select idr, nome_lui, cognome_lui, nome_lei, equipe, fineM, fineA from serviziAssegnati where servizio='" & csServizi.Text & "' and " & Now.Year & " <= fineA " ' and fineM >=" & Now.Month & " "
' MsgBox(MyCMd.CommandText)



MyRead = MyCMd.ExecuteReader

Dim idr As Integer
Dim cognome_lui As String
Dim nome_lui As String
Dim nome_lei As String
Dim equipe As String
Dim fineM As Integer
Dim fineA As Integer

DataGridView1.Rows.Clear()

Do While MyRead.Read = True

idr = MyRead(0)
cognome_lui = MyRead(1)
nome_lui = MyRead(2)
nome_lei = MyRead(3)
equipe = MyRead(4)
fineM = MyRead(5)
fineA = MyRead(6)


If MyRead(5) >= Now.Month Or MyRead(5) < Now.Month And MyRead(6) > Now.Year Then
DataGridView1.Rows.Add(idr, cognome_lui, nome_lui, nome_lei, equipe)

Else
' MsgBox("mese non valido")
End If
Loop
---------------------------------------------------
non so quanto possa essere chiaro il codice, Però Funziona!!!!
Grazie mille a tutti alla prossima!!
Zito Piero
bobo-89@libero.it
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