Problemas al insertar sobre un campo datetime

15/04/2004 - 16:12 por Jesus Villamizar | Informe spam
Saludos,

en esta ocasión quiero compartir la siguiente situación,

desarrollando un sistema estoy pasando un valor fecha con
formato (dd/mm/yyyy) a un campo de una base de datos que
es de tipo datetime, y le pongo el ejemplo, Quiero
insertar sobre ese campo la el valor de la fecha
01/04/2004 (es 1 de abril del 2004), para que haga la
respectiva validación y pueda accesar tal valor al campo
de la base de datos, hago la siguiente sintaxys:
<%
fecha = request("fecha")
fecha1 = formatDateTime(fecha,2)
%>

tal variable fecha1 es la que asigno en la sintaxys del
query sql e inserta el valor en el campo, el problema está
en que cuando hago la consulta a ese registro y veo el
valor de la fecha, noto que la fecha se ingresó en un
formato no esperado como:
2004/01/04, es decir en formato yyyy/dd/mmm, cuando lo
indicado es: yyyy/mm/dd.

Alguien pudiera explicarme tal situación

Gracias de Antemano...

Preguntas similare

Leer las respuestas

#6 Manuel Etcheto
15/04/2004 - 20:44 | Informe spam
Hola
quitale las barras (ej '20040401') para insertar

Recuerda que una fecha es un número(entero:día,
decimal:fraccióntranscurrida) en la bd, no "existe" ningún
formato, el formato es la "traducción" del número
desde/hacia una aplicación cliente.

Suerte
Manuel



lo intenté y con una fecha como 01/04/2004, la ingresa
como 04/01/2004, y en cambio la fecha de 30/04/2004 la
ingresa tal cual como la debe ingresar... sigue el mismo
problema

No creo que el problema esté en el formato del campo...


más bien debe estar
en la forma en que guardas el dato y luego lo


solicitas
Prueba algo así... (lo he hecho con la base




Northwind)

<%
fecha = "30/09/1959"
fecha1 = year(cdate(fecha))& "/" & month(cdate(fecha))


& "/" &
day(cdate(fecha))
strProvider = "tu cadena de conexion"
Set objConn = Server.CreateObject("ADODB.Connection")
Set objRS = Server.CreateObject("ADODB.Recordset")
objConn.Open strProvider
SQL = "INSERT INTO Employees (LastName, FirstName,


BirthDate) VALUES
('alguien', 'algo', CONVERT(DATETIME, '" &fecha1& "',


102))"
objConn.execute SQL
SQL= "Select * from Employees where BirthDate = CONVERT


(DATETIME, '"
&fecha1& "', 102)"
%>

Te devolverá el registro insertado

Sashka
MS MVP Access

"Jesus Villamizar"


escribió en el
mensaje news:1d07601c42301$359a9880$
el problema está en que manejador sql_server tiene la
descripción datetime y no date..


En una BD los DATETIME se almacenan en el formato que
indicas asi que es normal que esten asi.
si no queres ese formato seria mejor usar un DATE, no un
DATETIME, ya que este ultimo es por lo regular para
guardar fecha y hora, por eso lo del formato.

Saludos,

en esta ocasión quiero compartir la siguiente








situación,

desarrollando un sistema estoy pasando un valor fecha




con
formato (dd/mm/yyyy) a un campo de una base de datos








que
es de tipo datetime, y le pongo el ejemplo, Quiero
insertar sobre ese campo la el valor de la fecha
01/04/2004 (es 1 de abril del 2004), para que haga la
respectiva validación y pueda accesar tal valor al








campo
de la base de datos, hago la siguiente sintaxys:
<%
fecha = request("fecha")
fecha1 = formatDateTime(fecha,2)
%>

tal variable fecha1 es la que asigno en la sintaxys del
query sql e inserta el valor en el campo, el problema


está
en que cuando hago la consulta a ese registro y veo el
valor de la fecha, noto que la fecha se ingresó en un
formato no esperado como:
2004/01/04, es decir en formato yyyy/dd/mmm, cuando lo
indicado es: yyyy/mm/dd.

Alguien pudiera explicarme tal situación

Gracias de Antemano...
.



.





.



.

Respuesta Responder a este mensaje
#7 Jesus Villamizar
15/04/2004 - 21:11 | Informe spam
No resulta tampoco... y de todas formas asi no deber ser
la mascara de entrada de datos


Hola
quitale las barras (ej '20040401') para insertar

Recuerda que una fecha es un número(entero:día,
decimal:fraccióntranscurrida) en la bd, no "existe"


ningún
formato, el formato es la "traducción" del número
desde/hacia una aplicación cliente.

Suerte
Manuel



lo intenté y con una fecha como 01/04/2004, la ingresa
como 04/01/2004, y en cambio la fecha de 30/04/2004 la
ingresa tal cual como la debe ingresar... sigue el mismo
problema

No creo que el problema esté en el formato del campo...


más bien debe estar
en la forma en que guardas el dato y luego lo


solicitas
Prueba algo así... (lo he hecho con la base




Northwind)

<%
fecha = "30/09/1959"
fecha1 = year(cdate(fecha))& "/" & month(cdate(fecha))


& "/" &
day(cdate(fecha))
strProvider = "tu cadena de conexion"
Set objConn = Server.CreateObject("ADODB.Connection")
Set objRS = Server.CreateObject("ADODB.Recordset")
objConn.Open strProvider
SQL = "INSERT INTO Employees (LastName, FirstName,


BirthDate) VALUES
('alguien', 'algo', CONVERT(DATETIME, '" &fecha1& "',


102))"
objConn.execute SQL
SQL= "Select * from Employees where BirthDate =






CONVERT
(DATETIME, '"
&fecha1& "', 102)"
%>

Te devolverá el registro insertado

Sashka
MS MVP Access

"Jesus Villamizar"







escribió en el
mensaje news:1d07601c42301$359a9880$
el problema está en que manejador sql_server tiene la
descripción datetime y no date..


En una BD los DATETIME se almacenan en el formato que
indicas asi que es normal que esten asi.
si no queres ese formato seria mejor usar un DATE, no








un
DATETIME, ya que este ultimo es por lo regular para
guardar fecha y hora, por eso lo del formato.

Saludos,

en esta ocasión quiero compartir la siguiente








situación,

desarrollando un sistema estoy pasando un valor fecha




con
formato (dd/mm/yyyy) a un campo de una base de datos








que
es de tipo datetime, y le pongo el ejemplo, Quiero
insertar sobre ese campo la el valor de la fecha
01/04/2004 (es 1 de abril del 2004), para que haga la
respectiva validación y pueda accesar tal valor al








campo
de la base de datos, hago la siguiente sintaxys:
<%
fecha = request("fecha")
fecha1 = formatDateTime(fecha,2)
%>

tal variable fecha1 es la que asigno en la sintaxys










del
query sql e inserta el valor en el campo, el problema


está
en que cuando hago la consulta a ese registro y veo el
valor de la fecha, noto que la fecha se ingresó en un
formato no esperado como:
2004/01/04, es decir en formato yyyy/dd/mmm, cuando lo
indicado es: yyyy/mm/dd.

Alguien pudiera explicarme tal situación

Gracias de Antemano...
.



.





.



.



.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida