• Domingo 22 de Diciembre de 2024, 23:13

Autor Tema:  Consulta Sql Con Fechas En La Condicion Where  (Leído 3299 veces)

josu

  • Miembro activo
  • **
  • Mensajes: 66
    • Ver Perfil
Consulta Sql Con Fechas En La Condicion Where
« en: Viernes 19 de Mayo de 2006, 09:43 »
0
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:

akai-chan

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Re: Consulta Sql Con Fechas En La Condicion Where
« Respuesta #1 en: Viernes 19 de Mayo de 2006, 10:31 »
0
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
[size=109]En este mundo no existen las casualidades...
solo existe lo inevitable
[/size]

josu

  • Miembro activo
  • **
  • Mensajes: 66
    • Ver Perfil
Re: Consulta Sql Con Fechas En La Condicion Where
« Respuesta #2 en: Viernes 19 de Mayo de 2006, 10:53 »
0
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

akai-chan

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Re: Consulta Sql Con Fechas En La Condicion Where
« Respuesta #3 en: Viernes 19 de Mayo de 2006, 11:00 »
0
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..
[size=109]En este mundo no existen las casualidades...
solo existe lo inevitable
[/size]

josu

  • Miembro activo
  • **
  • Mensajes: 66
    • Ver Perfil
Re: Consulta Sql Con Fechas En La Condicion Where
« Respuesta #4 en: Viernes 19 de Mayo de 2006, 11:10 »
0
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:

akai-chan

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Re: Consulta Sql Con Fechas En La Condicion Where
« Respuesta #5 en: Viernes 19 de Mayo de 2006, 11:37 »
0
de nadaaa y lo sientooo
a ver si alguien se pasa x el foro y puede ayudarte :hola:
[size=109]En este mundo no existen las casualidades...
solo existe lo inevitable
[/size]

mustang

  • Miembro MUY activo
  • ***
  • Mensajes: 133
    • Ver Perfil
Re: Consulta Sql Con Fechas En La Condicion Where
« Respuesta #6 en: Viernes 19 de Mayo de 2006, 16:45 »
0
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
El camino del exceso lleva al palacio de la sabiduria.....(William Blake)

josu

  • Miembro activo
  • **
  • Mensajes: 66
    • Ver Perfil
Re: Consulta Sql Con Fechas En La Condicion Where
« Respuesta #7 en: Lunes 22 de Mayo de 2006, 09:08 »
0
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.

josu

  • Miembro activo
  • **
  • Mensajes: 66
    • Ver Perfil
Re: Consulta Sql Con Fechas En La Condicion Where
« Respuesta #8 en: Jueves 25 de Mayo de 2006, 13:50 »
0
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: