none
COMO INSERTAR FECHA EN SQLSERVER DESDE VB.NET

    Pregunta

  •      Por favor alguien puede decirme como puedo solucionar esto: quiero insertar en sqlserver el campo fecha desde vb.net pero me da el siguiente error: "{"Line 1: Incorrect syntax near '28-03-2017 12:00:00'."}"

    estas son mis variables que declare para la fecha:

    Dim fecha As Date = Today.Date
    Dim fechaFormateada As String
    fechaFormateada = fecha.ToString("dd-MM-yyyyhh:mm:ss")

    luego aqui el INSERT

    consulta = New OleDbCommand("insert into PEDIDOS_VALID_DET (PEDIDO,LINEA,SKU,UL,CANT_VALIDADA,CANT_VALIDADA_UNI,PALETA,CANT_PEDIDA,USUARIO,FECHA_HORA) values ('" & PEDIDO & "','" & linea1 & "','" & SKU1 & "','" & UL1 & "','" & Cant_Valid1 & "','" & Cant_Uni1 & "','" & paleta1 & "','" & Cant_Ped1 & "','" & VALIDADOR1 & "','" & fechaFormateada & "'", conexion)

    Try
          consulta.ExecuteNonQuery()
      Catch ex As Exception
            MsgBox(ex.ToString)
     End Try

    uso visual studio 2010 y sqlserver 2000

    martes, 28 de marzo de 2017 20:11

Respuestas

  • Hola 

    intenta declarar tu variable fecha como Datetime

    Saludos.

    Si te sirvió, por favor no olvides votar

    • Marcado como respuesta AG2017 martes, 28 de marzo de 2017 20:55
    martes, 28 de marzo de 2017 20:38
  • el formato es el correto? 

    revisa este link https://msdn.microsoft.com/es-es/library/8kb3ddd4(v=vs.110).aspx  y verifica si es el formato que deseas.

    En tu bd el campo de q tipo es?

    Saludos.

    • Marcado como respuesta AG2017 martes, 28 de marzo de 2017 21:12
    martes, 28 de marzo de 2017 21:01
  • Hola,

    Dim fecha as Datetime = Datetime.Now

    con eso lo podrás grabar.

    No olvides colocar tu try catch para que validas errores

    Saludos.


    Brayan De La Cruz Lima, Perú Si te sirvió, vota por favor.

    • Marcado como respuesta AG2017 martes, 28 de marzo de 2017 22:20
    martes, 28 de marzo de 2017 22:10
  • Dim fecha As Datetime = Datetime.now

    luego aqui el INSERT

    consulta = New OleDbCommand("insert into PEDIDOS_VALID_DET (PEDIDO,LINEA,SKU,UL,CANT_VALIDADA,CANT_VALIDADA_UNI,PALETA,CANT_PEDIDA,USUARIO,FECHA_HORA) values ('" & PEDIDO & "','" & linea1 & "','" & SKU1 & "','" & UL1 & "','" & Cant_Valid1 & "','" & Cant_Uni1 & "','" & paleta1 & "','" & Cant_Ped1 & "','" & VALIDADOR1 & "',fecha, conexion)

    Try
          consulta.ExecuteNonQuery()
      Catch ex As Exception
            MsgBox(ex.ToString)
     End Try

    No es necsario las comillas, porque ya no es varchar, pruebalo

    • Marcado como respuesta AG2017 miércoles, 29 de marzo de 2017 13:29
    martes, 28 de marzo de 2017 22:57
  • Correcto, pruebalo con las comillas del concatenado osea las dobles comillas, pero no incluyas las comillas simples que estas las interpreta el SQL como texto

    ,"fecha"

    Saludos.


    Si serví a tu consulta, no olvides votar como útil.

    • Marcado como respuesta AG2017 miércoles, 29 de marzo de 2017 14:35
    miércoles, 29 de marzo de 2017 14:18

Todas las respuestas

  • Hola 

    intenta declarar tu variable fecha como Datetime

    Saludos.

    Si te sirvió, por favor no olvides votar

    • Marcado como respuesta AG2017 martes, 28 de marzo de 2017 20:55
    martes, 28 de marzo de 2017 20:38
  • hola gracias por responder ya probe con eso pero sigue dando el error
    martes, 28 de marzo de 2017 20:55
  • el formato es el correto? 

    revisa este link https://msdn.microsoft.com/es-es/library/8kb3ddd4(v=vs.110).aspx  y verifica si es el formato que deseas.

    En tu bd el campo de q tipo es?

    Saludos.

    • Marcado como respuesta AG2017 martes, 28 de marzo de 2017 21:12
    martes, 28 de marzo de 2017 21:01
  • ya revise lo del formato y esta bien es el que quiero y es el que tiene la DB, el campo fecha es tipo DATETIME
    martes, 28 de marzo de 2017 21:11
  • ya, al mandar en el value estas mandando fecha formateada como string, lo tienes que enviar como datetime, en todo caso si quieres aplicar tu propio formato, en tu base de datos tendría que ser varchar-

    El campo datetime en la base de datos guarda en un formato, y tu le estas mandando en otro

    Saludos.

    martes, 28 de marzo de 2017 21:25
  • disculpa pero podrías decirme como lo mandarías en formato datetime, es que probé de la siguiente manera y aun me envia el error:

    Dim fecha As DateTime = Now

    y luego mi consulta con la variable 'fecha'

    consulta = New OleDbCommand("insert into PEDIDOS_VALID_DET (PEDIDO,LINEA,SKU,UL,CANT_VALIDADA,CANT_VALIDADA_UNI,PALETA,CANT_PEDIDA,USUARIO,FECHA_HORA) values ('" & PEDIDO & "','" & linea1 & "','" & SKU1 & "','" & UL1 & "','" & Cant_Valid1 & "','" & Cant_Uni1 & "','" & paleta1 & "','" & Cant_Ped1 & "','" & VALIDADOR1 & "','" & fecha & "'", conexion)

    martes, 28 de marzo de 2017 21:37
  • Hola,

    Dim fecha as Datetime = Datetime.Now

    con eso lo podrás grabar.

    No olvides colocar tu try catch para que validas errores

    Saludos.


    Brayan De La Cruz Lima, Perú Si te sirvió, vota por favor.

    • Marcado como respuesta AG2017 martes, 28 de marzo de 2017 22:20
    martes, 28 de marzo de 2017 22:10
  • No se que pasa pero me sigue dando el error :(
    martes, 28 de marzo de 2017 22:20
  • dime cúal es exactamente el error? o sigue siendo el mismo?
    martes, 28 de marzo de 2017 22:54
  • Dim fecha As Datetime = Datetime.now

    luego aqui el INSERT

    consulta = New OleDbCommand("insert into PEDIDOS_VALID_DET (PEDIDO,LINEA,SKU,UL,CANT_VALIDADA,CANT_VALIDADA_UNI,PALETA,CANT_PEDIDA,USUARIO,FECHA_HORA) values ('" & PEDIDO & "','" & linea1 & "','" & SKU1 & "','" & UL1 & "','" & Cant_Valid1 & "','" & Cant_Uni1 & "','" & paleta1 & "','" & Cant_Ped1 & "','" & VALIDADOR1 & "',fecha, conexion)

    Try
          consulta.ExecuteNonQuery()
      Catch ex As Exception
            MsgBox(ex.ToString)
     End Try

    No es necsario las comillas, porque ya no es varchar, pruebalo

    • Marcado como respuesta AG2017 miércoles, 29 de marzo de 2017 13:29
    martes, 28 de marzo de 2017 22:57
  • Brayan, probé como me indicaste pero si lo hago así me lo marca como un error ya que me pide que cierre con comillas
    miércoles, 29 de marzo de 2017 13:30
  • Correcto, pruebalo con las comillas del concatenado osea las dobles comillas, pero no incluyas las comillas simples que estas las interpreta el SQL como texto

    ,"fecha"

    Saludos.


    Si serví a tu consulta, no olvides votar como útil.

    • Marcado como respuesta AG2017 miércoles, 29 de marzo de 2017 14:35
    miércoles, 29 de marzo de 2017 14:18
  • esta ves me manda el error pero solo en la hora osea sin son las 10:01:23 me manda el siguiente error: 

    Incorrect syntax near '10'

    antes era en toda la fecha, que crees que pueda ser?

    miércoles, 29 de marzo de 2017 14:35
  • si tu campo en el sql es datetime y en visual lo mandas como datetime, no debería generar problema. En todo caso fíjate la configuración de la fecha, quizá primero esta la hora antes que la fecha. Esto sería el language del sql.

    Observa bien como mandas la fecha y como debes recibirla en el sql, 



    Si serví a tu consulta, no olvides votar como útil.


    miércoles, 29 de marzo de 2017 14:42