Programación General > Bases de Datos
Ingreso De Horas Y Fechas En Vb 6.0
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 = "0000-00-00 " & Format(Time, "hh:mm:ss") strSQL = "INSERT INTO LLAMADA (HoraLlamada) VALUES('" & texto & "')" 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
[*] Página Anterior
Ir a la versión completa