Programación General > Bases de Datos

 Ingreso De Horas Y Fechas En Vb 6.0

<< < (4/4)

F_Tanori:
Hola mira de momento aqui no tengo el SQL Server :P


y eso no es una cadena de conexion :P, es una instruccion/sentencia/comando... SQL ;)

pero voy a decirte que se me ocurre que este pasando,(probando en MySQL :P):

yo tengo una tabla que se llama bitacora y tengo un campo de tipo DateTime para insertar un registro con un dato en ese
campo desde vb y lo intento asi...
<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>SQL </td></tr><tr><td id='CODE'><!--sql1-->[color=blue;font-weight]INSERT[/color] INTO bitacora(idrow,movimiento,usuario,fechahora) VALUES(NULL,356,1,'23-02-2006') <!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->

o asi
<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>SQL </td></tr><tr><td id='CODE'><!--sql1-->[color=blue;font-weight]INSERT[/color] INTO bitacora(idrow,movimiento,usuario,fechahora) VALUES(NULL,356,1,'23/02/2006') <!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->

me da un error en la fecha primeramente me falta agregarle la hora ya que el campo es DateTime... entonces
si pruebo con...

<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>SQL </td></tr><tr><td id='CODE'><!--sql1-->[color=blue;font-weight]INSERT[/color] INTO bitacora(idrow,movimiento,usuario,fechahora) VALUES(NULL,356,1,'23-02-2006 10:50:30') <!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->

tambien es error :P

y la razon es sencilla es el formato es incorrecto para ingresar una fecha a un campo datetime pues el formato
que espera es 0000-00-00 00:00:00 (año-mes-dia hh:mm:ss)..... entonces
hay que enviarlo de esa manera

<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>SQL </td></tr><tr><td id='CODE'><!--sql1-->[color=blue;font-weight]INSERT[/color] INTO bitacora(idrow,movimiento,usuario,fechahora) VALUES(NULL,356,1,'2006-02-23 10:50:30') <!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->

incluso la pura hora
<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>SQL </td></tr><tr><td id='CODE'><!--sql1-->[color=blue;font-weight]INSERT[/color] INTO bitacora(idrow,movimiento,usuario,fechahora) VALUES('0000-00-00 10:50:30') <!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->

o la pura fecha
<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>SQL </td></tr><tr><td id='CODE'><!--sql1-->[color=blue;font-weight]INSERT[/color] INTO bitacora(idrow,movimiento,usuario,fechahora) VALUES('2006-02-23 00:00:00') <!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->

y con eso ya guarda (MySQL) ingresalo tal cual lo espere SQL Server que no se cual sea :P creo que el mismo


desde VB


--- Código: Text ---Dim texto As String        texto = &#34;0000-00-00 &#34; & Format(Time, &#34;hh:mm:ss&#34;)    strSQL = &#34;INSERT INTO LLAMADA (HoraLlamada) VALUES('&#34; & texto & &#34;')&#34;    Conexion.Execute strSQL     
Ha... no hay que darle espacio a los delimitadores porque entonces estas agregados dos caracteres mas (en blanco)
algo como lo que dice albertovicat

strSQL = "INSERT INTO LLAMADA (HoraLlamada) VALUES('<espacio de mas> " & texto & "<espacio de mas> ')"

porque seria: ' 0000-00-00 10:50:30 ' que no es lo mismo a '0000-00-00 10:50:30'




(# es para access) :P

Saludos y espero te ayude, aclaro de nuevo estas pruebas y deducciones fueron aplicadas sobre MySQL

ERNESTO_FOX:
SI LO QUE DESEAS ES GUARDAR UN CAMPO DATETIME EN UNA TABLA DE SQL SERVER, USANDO VB NET, LO PUEDES HACER DE LA SIGUIENTE MANERA:

DEFINE UNA VARIABLE TIPO STRING, QUE CONTENDRA EL COMANDO SQL A INSERTAR EL REGISTRO EN TU TABLA,
xsql: VARIABLE TIPO STRING
ej1: ES EL NOMBRE DE LA TABLA

Me.textbox1.text= Date.Now
dim xsql as string
xsql = "insert into ej1 (fecha) values (convert(datetime,' "+Me.textbox1.Text.Replace(".", "")+ " '))"

 xconex.open()
 xcomando = New SqlCommand
 xcomando.CommandText = xsql
 xcomando.Connection = xconex     'conexion activa
 xcomando.CommandType = CommandType.Text
 xcomando.ExecuteNonQuery()

nota: se usa el comando "convert", de sql, para convertir un valor a datetime,
nota: si te das cuenta, elimine los puntos "." del formato datetime  y los reemplaze por espacio nulo "",

espero que te sirva...

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa