Avatar billede websam Nybegynder
04. februar 2006 - 15:43 Der er 13 kommentarer og
1 løsning

Dato søgning ?

Hejsa,

Jeg skal have fundet ud af hvorledes jeg kan lave en søgning i en database på en dato. Det jeg vil er at jeg skal have fundet ud om der ligger en dato udfra dag og måned.

Forstået på den måde at jeg har følgende dato i databasen :

01-01-2006 12:12:12

Jeg skal så lave en søgning i databasen efter om der ligger en dato hvor dag og måned kunne være 01-01 uden år, timer, minutter og sekunder.

Er der en der kan hjælpe mig med det ?

/Websam
Avatar billede dr_chaos Nybegynder
04. februar 2006 - 15:48 #1
du kan gøre noget i denne stil

SELECT * FROM Tabel WHERE DATEPART(dd,Dato)= DATEPART(dd,@InputDato) AND ATEPART(mm,Dato)= DATEPART(mm,@InputDato)
Avatar billede dr_chaos Nybegynder
04. februar 2006 - 15:48 #2
hvis du bruger ms sql
Avatar billede dr_chaos Nybegynder
04. februar 2006 - 15:49 #3
Eller kortere

SELECT * FROM Tabel DAY(Dato)= DAY(@InputDato) AND MONTH(Dato)= MONTH(@InputDato)
Avatar billede websam Nybegynder
04. februar 2006 - 15:50 #4
det er mssql men fra en class fil i min application, gør det nogen forskel ?
Avatar billede dr_chaos Nybegynder
04. februar 2006 - 15:56 #5
det bør det ikke bortset fra at @InputDato skal formodentlig være en datetime.ToString()
eller en int som sættes lig med DAY(Dato)

DAY(Dato) returnere en int.
Avatar billede websam Nybegynder
04. februar 2006 - 15:57 #6
Ok det leger jeg lige med så vender jeg tilbage
Avatar billede dr_chaos Nybegynder
04. februar 2006 - 15:58 #7
ok :)
Avatar billede websam Nybegynder
04. februar 2006 - 16:07 #8
Ok jeg har følgende metode :

Public Function GetDay(ByVal TheDate As DateTime) As Boolean Implements iStatistikData.GetDay
    Dim objConn As SqlConnection = objDb.SqlConnect
    Dim objComm As New SqlCommand("Select TheDate From tbl_count_day1 Where Day(TheDate) = Day(@TheDate) And Month(TheDate) = Month(@TheDate)", objConn)
    objComm.Parameters.Add("@TheDate", SqlDbType.NVarChar)
    objComm.Parameters("@TheDate").Value = TheDate
    Dim Rs As SqlDataReader = objComm.ExecuteReader
    Dim boolReturn As Boolean
    Do While Rs.Read
        If Not (Rs("TheDate") Is DBNull.Value) Then
            boolReturn = True
        Else
            boolReturn = False
        End If
    Loop
    Rs.Close()
    objDb.SqlClose()
    Return boolReturn
End Function

den er så grundlag for hvorvidt jeg tilføjer en nu record eller opdatere en eksisterende men uanset hvad så laver den en ny record, misser jeg noget her ?
Avatar billede dr_chaos Nybegynder
04. februar 2006 - 16:21 #9
prøv at udskrive Rs("TheDate") og se hvad du får
evt. med
System.Dianogstics.Debug.WriteLine.
I hvilket tilfælde opretter den en record ? Er det når boolReturn er false ?
Avatar billede websam Nybegynder
04. februar 2006 - 16:32 #10
Der havde jeg lige skrevet forkert den skal selvfølgelig oprette en record når return = true :

If (Rs("TheDate") Is DBNull.Value) Then
    boolReturn = True
Else
    boolReturn = False
End If

i min buisness del laver jeg så følgende :

Dim boolReturn As Boolean
boolReturn = objData.GetDay(_Date)

If boolReturn Then
    objData.AddDay(_Date)
Else
    Dim arrHits As ArrayList
    arrHits = objData.GetDayHits(_Date)
    Dim intId As Integer = arrHits.Item(0)
    Dim intHits As Integer = arrHits.Item(1)
    intHits = intHits + 1
    Dim strError As Boolean
    strError = objData.EditDay(intId, intHits)
End If

men jeg får denne med fejl :

Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index

i denne linie :

Dim intId As Integer = arrHits.Item(0)

og det virker sq underligt for den skal jo ikke gå i opdatering når jeg f.eks ikke har nogle records i databasen
Avatar billede arne_v Ekspert
04. februar 2006 - 21:55 #11
SqlDbType.NVarChar ??
Avatar billede dr_chaos Nybegynder
05. februar 2006 - 11:38 #12
SqlDbType.NVarChar skal nok være SqlDbType.datetime
Avatar billede websam Nybegynder
05. februar 2006 - 21:41 #13
Ja det er jo nogle af de små smuttere der er ;o)

Den anden fejl var en if sætning jeg havde fået sat forkert den søgte på false istedet for true DOOOHHHH.

Men smid et svar så er der point på vej.

/Websam
Avatar billede dr_chaos Nybegynder
06. februar 2006 - 08:21 #14
svar :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester