404 messaggi dal 09 maggio 2012
Ciao ragazzi, devo effettuare una query che preleva il numero di accessi verificatosi nella giornata di ieri. Se provo con "where [data_accesso]= datetime.now.adddays(-1)" non va bene perchè prende la data di ieri ma con l'ora corrente ovvero calcola 24 ore esatte in meno dall'ora corrente. Io voglio tutti gli ingressi della giornata invece. Pertanto sto cercando di costruirmi una query del tipo:

Dim conn As SqlConnection
            Dim str As String = ""

            Dim cmd As SqlCommand
            Dim mese As Integer = DateTime.Now.Month.ToString
            Dim anno As Integer = DateTime.Now.Year.ToString
            Dim giorno As Integer = DateTime.Now.Day.ToString
            Dim ora As String = "00:00:00"
            Dim oggi As String = CStr(giorno & "/" & mese & "/" & anno & " " & ora)


            conn = New SqlConnection(ConfigurationManager.ConnectionStrings.Item("conn1").ConnectionString)


            str = "select COUNT(*) from accessi where [data_accesso] <='" & oggi & "'"
            cmd = New SqlCommand(str, conn)

            conn.Open()
            Dim ret As Object = cmd.ExecuteScalar()
            Dim numero As Int16 = ret
            conn.Close()


Quindi sono riucito ad impostare la data di oggi ma .. come posso impostare "maggiore di data di 2 giorni fa" ?? :-D

Spero abbiate capito, grazie
383 messaggi dal 23 aprile 2007
Qualcosa del genere:

Dim str As String = ""

Dim cmd As SqlCommand
Dim now as Datetime = Datetime.Now
Dim now_2 as Datetime = now - 2
Dim mese As Integer = now_2.Month.ToString
Dim anno As Integer = now_2.Year.ToString
Dim giorno As Integer = now_2.Day.ToString
Dim ora As String = "00:00:00"
Dim oggi_2 As String = CStr(giorno & "/" & mese & "/" & anno & " " & ora)

mese = now .Month.ToString
anno = now .Year.ToString
giorno = now .Day.ToString
Dim oggi As String = CStr(giorno & "/" & mese & "/" & anno & " " & ora)

            conn = New SqlConnection(ConfigurationManager.ConnectionStrings.Item("conn1").ConnectionString)


            str = "select COUNT(*) from accessi where [data_accesso] <='" & oggi & "'" & " [data_accesso] >= oggi_2 "
            cmd = New SqlCommand(str, conn)


Un altro consiglio: evita la concatenazione di stringhe, può essere soggetta a sql injection, meglio uno string.format

Sergio
404 messaggi dal 09 maggio 2012
Bene, ho fatto qualche piccola correzione e pare funzioni, Grazie

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.