SoloCodigo

CLR: .Net / Mono / Boo / Otros CLR => ASP .NET => Mensaje iniciado por: josu en Viernes 19 de Mayo de 2006, 09:43

Título: Consulta Sql Con Fechas En La Condicion Where
Publicado por: josu en Viernes 19 de Mayo de 2006, 09:43
hola,
estoy intentando poner en el where de mi consulta sql una condicion con una fecha pero no consigo ponerlo de forma que me funcione.os explico la situacion:

en la base de datos el campo de fecha esta de esta manera: 1998-01-29 00:00:00 y cuando accedes ala  fecha con un sql por ejemplo:select fecha from incidencias y le asigno ese valor a un textbox asi:  
TextBox1.Text = oDs.Tables(0).Rows(0).Item("fecha").ToString

 me devuelve el valor asi:01/11/1996 0:00:00

lo que yo quiero es hacer esta consulta:  :comp:
select contrato from incidencias where fecha=#1998/01/29 00:00:00#

pero no me funciona si alguien me podri indicar en que me equiboco o como se hace realmente o alguna pagina donde expliquen bien como hacerlo se lo agradeceria mucho es bastante urgente y estoy muy clavau. :(

po si es de ayuda utilizo visual studio 2003 y framework1.1

un saludo y gracias de antemano a quien me pueda echar una mano :hola:
Título: Re: Consulta Sql Con Fechas En La Condicion Where
Publicado por: akai-chan en Viernes 19 de Mayo de 2006, 10:31
podria ser q tienes q utilizar comillas simples en vez de #
en mi bd tngo el campo como datetime y cuando le envio la var desde el select lo pongo: 'mm/dd/aaaa'

x cierto ten en cuenta el orden d mes,dia y año, depende d la configuracion y x lo q veo t devuelve el año en ultima posicion y tu se lo envias en el select en la primera posicion y eso es bastante importante
Título: Re: Consulta Sql Con Fechas En La Condicion Where
Publicado por: josu en Viernes 19 de Mayo de 2006, 10:53
hola akai_chan,
lo pimero darte las gracias por atender mis dudas, e cambia las # por ' y e puesto bien el orden de las fechas pero sigue sin funcionar, :(

te pongo aqui la prueba que estoy haciendo por si ves el fallo mejor: :comp:
       
        Dim oConn As New OleDb.OleDbConnection
        Dim oCmd As New OleDb.OleDbCommand
        Dim oDa As New OleDb.OleDbDataAdapter
        Dim oDs As New DataSet
Try
            oConn.ConnectionString = "Provider=MSDAORA;" & _
                                     "Data Source=ESTRE;" & _
                                     "User ID=proto;" & _
                                     "Password=proto;"

            oConn.Open()
            oCmd.CommandText = "SELECT I.CONTRATO AS KK FROM NOMINA.INCIDENCIAS I WHERE I.FECHA='01/29/1998 0:00:00'"
            oCmd.Connection = oConn
            oDa.SelectCommand = oCmd
            oDa.Fill(oDs, "tabla")
            TextBox1.Text = oDs.Tables(0).Rows(0).Item("KK").ToString
           
            oConn.Close()
            oConn = Nothing

        Catch ex As Exception
            Response.Write("error")
        End Try

cuando llega a aDa.fill(oDs, "tabla") me salta la excepcion.

la base de datos que uso como puedes ver es de oracle y el campo en labd es del tipo date a secas te digo esto por si te sirve para entenderlo mejor.

un saludo y gracias de nuevo :D
Título: Re: Consulta Sql Con Fechas En La Condicion Where
Publicado por: akai-chan en Viernes 19 de Mayo de 2006, 11:00
uff lo unico q veo raro es lo siguiente:

oDa.Fill(oDs, "tabla")

donde deberia ser si no me equivoco oDa.Fill(oDs, "incidencias") o nomina.incidencias

yo es q utilizo sql aunq no creo q haya muxa diferencia...

no se me ocurre otra cosa, lo siento..
Título: Re: Consulta Sql Con Fechas En La Condicion Where
Publicado por: josu en Viernes 19 de Mayo de 2006, 11:10
e probado lo que me as dicho y no funciona cosa que ya me imaginaba por que ya habia utilizado lo de "tabla" otras veces pero pr probar no pierdo nada :P .

no te preocupes te agradezco mucho que pierdas un poco de tu tiempo para ayudarme.

un saludo y gracias. :hola:
Título: Re: Consulta Sql Con Fechas En La Condicion Where
Publicado por: akai-chan en Viernes 19 de Mayo de 2006, 11:37
de nadaaa y lo sientooo
a ver si alguien se pasa x el foro y puede ayudarte :hola:
Título: Re: Consulta Sql Con Fechas En La Condicion Where
Publicado por: mustang en Viernes 19 de Mayo de 2006, 16:45
Cita de: "josu"
en la base de datos el campo de fecha esta de esta manera: 1998-01-29 00:00:00 y cuando accedes ala  fecha con un sql por ejemplo:select fecha from incidencias y le asigno ese valor a un textbox asi:  
TextBox1.Text = oDs.Tables(0).Rows(0).Item("fecha").ToString

 me devuelve el valor asi:01/11/1996 0:00:00

lo que yo quiero es hacer esta consulta:  :comp:
select contrato from incidencias where fecha=#1998/01/29 00:00:00#
Hola, yo tuve el mismo problema con un servidor de bases de datos informix, el formato de fecha es igual aaaa-mm-dd- hh:mm:ss, cuado el programa de .NET te regresa la fecha la convierte al formato windows por eso te la muestra asi,

tu necesitarias mandarla asi:
Código: Text
  1.  
  2. select contrato from incidencias where fecha=#1998-01-29 00:00:00#  ó
  3. select contrato from incidencias where fecha='1998-01-29 00:00:00'
  4.  
  5.  
para poder enviarle una fecha de consulta al servidor debes de mandarsela en el formato ke la rekiere o tiene especificada; ahora, cuando te devuelve la fecha se muestra asi: 01/11/1996 0:00:00 si kisieras convertir esa fecha al formato aaaa-mm-dd- hh:mm:ss es del siguiente modo,
si el resultado de oDs.Tables(0).Rows(0).Item("fecha").ToString fue 01/11/1996 0:00:00, y se lo asignas a una variable para usarla en el sql para la otra consulta
Código: Text
  1.  
  2. Dim fechasql as string
  3.        fechasql = oDs.Tables(0).Rows(0).Item("fecha").ToString("u")
  4.        fechasql = Replace(fecregistro.ToString, "Z", "", 1, -1, CompareMethod.Text)
  5.  
  6.  
en la primera línea le asignas a fechasql la fecha obtenida anteriormente pero con formato "u" que te lo pondría de este modo '1998-01-29 00:00:00Z' con una "Z" al final por eso la segunda línea para kitarle la Z.
Espero te haya podido ayudar
Título: Re: Consulta Sql Con Fechas En La Condicion Where
Publicado por: josu en Lunes 22 de Mayo de 2006, 09:08
hola,
lo primero darte las gracias por intentar darle solucion a mi problema.
e probado las dos formas que me as comentado
Citar
select contrato from incidencias where fecha=#1998-01-29 00:00:00#  ó
select contrato from incidencias where fecha='1998-01-29 00:00:00'

pero sigue saltandome la excepcion:
Citar
cuando llega a aDa.fill(oDs, "tabla") me salta la excepcion

e probado hacer la connexion sin llenar luego el dataset y no me salta el error no se si esto querra decir algo pero puede que el error no este en el sitio yo creo y no lo sepa.

gracias de nuevo y un saludo.
Título: Re: Consulta Sql Con Fechas En La Condicion Where
Publicado por: josu en Jueves 25 de Mayo de 2006, 13:50
hola,

por fin despues de probar de mil maneras y robaros un poco de vuestro tiempo :P (que os lo agradezco muchisimo) e conseguido hacer mi consulta y que me funcione bien. :smartass:

pongo aqui como lo e echo por si alguien tendria un problema parecido poder solucionarlo: :comp:

WHERE FECHA = TO_DATE('19980128', 'yyyyMMdd')

un saludo y muchisimas gracias. :hola: