Foros del Web » Programando para Internet » ASP Clásico »

las Fechas en SQL Server.

Estas en el tema de las Fechas en SQL Server. en el foro de ASP Clásico en Foros del Web. como puedo hacer para convertir una fecha, en asp, por ejemplo la fecha normal es "15/07/2005", pero yo deseo que la fecha sea como em ...
  #1 (permalink)  
Antiguo 18/07/2005, 11:15
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 21 años, 5 meses
Puntos: 53
las Fechas en SQL Server.

como puedo hacer para convertir una fecha, en asp, por ejemplo la fecha normal es "15/07/2005", pero yo deseo que la fecha sea como em la pide el sql server "2005-07-15", tengo tres campos donde ser recibe el la instruccion de fecha, el txtfe1, txtfe2, txtfe3, dias, mes, año, respectivamente, pero cuando los deseo cambiar por ejemplo "15/07/2005" alli viene el problema porque me nada mas me da "05-7-15" y el sql server no me lo acepta asi.. en conclusion.

la fecha sale asi.. "15/07/2005" y la deseo "2005-07-15"

gracias por sus respuestas..

nos vemos..
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #2 (permalink)  
Antiguo 18/07/2005, 11:24
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98

Y si las parseas a date y luego tratas de insertarlas?

var = "15/07/2005"
var_date = cdate(var)

INSERT INTO tabla(campo_fecha) VALUES("&var_date&")

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 18/07/2005, 11:27
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Y una lectura por el link recomendado por orharo no esta de mas: http://www.mug.org.ar/SQL/ArticSQL/240.aspx
  #4 (permalink)  
Antiguo 18/07/2005, 11:30
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Ups, no me percaté qeu eras tu, amigo GeoAvila .....bueno, el link no te esta de mas, jejeje

Aunque veamos, una solución "cutre" (como alguien en este foro seguido dice) pero ràpida, podría ser que si la fecha sale asi.. "15/07/2005" y la deseo "2005-07-15", pues corta cada elemento usando la / como caracter separador (split) y forma una nueva como la deseas.

Saludos
  #5 (permalink)  
Antiguo 18/07/2005, 11:33
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
Pero finalmente al pasarle una variable de tipo fecha, SQL tendra que hacer el trabajo no?
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #6 (permalink)  
Antiguo 18/07/2005, 11:37
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Nanay, en sql server, un insert o un update por código requiere un parámetro string.

Insert tabla (campo_fecha) values ('" & varFormatoFecha & "')"
  #7 (permalink)  
Antiguo 18/07/2005, 11:40
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98


Código:
strSQL = "INSERT INTO tabla(campo_fecha) VALUES(?)"
Set cmd = Server.createObject("ADODB.Command")
Set param = cmd.CreateParameter("fecha", adDate, adParamInput, 8, var_date)
cmd.ActiveConnection = ObjConn
cmd.CommandText = strSQL
cmd.CommandType = adCmdText
cmd.Execute()
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #8 (permalink)  
Antiguo 18/07/2005, 11:44
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Te falta Neuron para pelear ¿verdad?, jejeje

Siguiendo el tema lo que haces ahí es ejecitar un command, parametrizado. Si recuerdas el post de GeoAvila del Viernes, le comenté que no necesitaba definir el la variable de dipo fecha A MENOS que usara paràmetros mediante un command que ejecutara, por ejemplo, un SP.

Pero si vas a ejecutar la consulta sin parámetros, es decir, formándola mediante concatenaciones, no se necesita, es más no debe ser de tipo fecha, sino string.

Saludos, y éntrale, jejeje
  #9 (permalink)  
Antiguo 18/07/2005, 11:48
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 21 años, 5 meses
Puntos: 53
bueno lo del cdate me da este problema..
sigo con la siguiente opcion..

The conversion of char data type to smalldatetime data type resulted in an out-of-range smalldatetime value.
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #10 (permalink)  
Antiguo 18/07/2005, 11:50
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
Cita:
Iniciado por Myakire
Te falta Neuron para pelear ¿verdad?, jejeje

Siguiendo el tema lo que haces ahí es ejecitar un command, parametrizado. Si recuerdas el post de GeoAvila del Viernes, le comenté que no necesitaba definir el la variable de dipo fecha A MENOS que usara paràmetros mediante un command que ejecutara, por ejemplo, un SP.

Pero si vas a ejecutar la consulta sin parámetros, es decir, formándola mediante concatenaciones, no se necesita, es más no debe ser de tipo fecha, sino string.

Saludos, y éntrale, jejeje
Asi es master, en realidad no tengo experiencia utilizando sentencias sin parametros con campos de tipo date, es un poco mas engorroso porque escribes mas codigo, pero al final mas seguro y sin tanta lata.

Salu2!
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #11 (permalink)  
Antiguo 18/07/2005, 11:53
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 21 años, 5 meses
Puntos: 53
o esto tambien..

The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #12 (permalink)  
Antiguo 18/07/2005, 11:56
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 21 años, 5 meses
Puntos: 53
de esta manera se encuentra mi consulta..
Código:
fec1= cdate(fe1&"/"&fe2&"/"&fe3)
fec2= cdate(fe4&"/"&fe5&"/"&fe6)

 Rs.Open "SELECT  * FROM  dbo.reservas WHERE (fecha1 >= '" & CDATE(fec1) &"') AND (fecha2 < '" & CDATE(fec2) &"') AND  (mhotel1 = 'Antigua') AND (mncliente = '') AND (mestado = 'I')", Conn, 1,3
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #13 (permalink)  
Antiguo 18/07/2005, 11:57
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Cita:
Asi es master, en realidad no tengo experiencia utilizando sentencias sin parametros con campos de tipo date, es un poco mas engorroso porque escribes mas codigo, pero al final mas seguro y sin tanta lata.
uuuhhh, que pronto te retiras , a Neuron le discutes por lo menos 10 msgs en promedio



PD. No batalles GeoAvila, hazlo como string
Cita:
fec1= fe1&"/"&fe2&"/"&fe3
fec2= fe4&"/"&fe5&"/"&fe6
Rs.Open "SELECT * FROM dbo.reservas WHERE (fecha1 >= '" & fec1 &"') AND (fecha2 < '" & fec2 &"') AND (mhotel1 = 'Antigua') AND (mncliente = '') AND (mestado = 'I')", Conn, 1,3
  #14 (permalink)  
Antiguo 18/07/2005, 11:58
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
Esta bien, para que no me reganen prepare esto, a ver si te sirve

Código:
Function GetSQLDate(my_date)
	anyo = year(cdate(my_date))
	mes = month(cdate(My_date))
	dia = day(cdate(my_date))
	GetSQLDate = anyo & "-" & mes & "-" & dia
End Function
var = "15/07/2005"
Response.Write(GetSQLDate(var))
Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #15 (permalink)  
Antiguo 18/07/2005, 12:05
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
Nah, es que hoy no tengo ganas de discutir, sera la cruz de 3 dias?
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #16 (permalink)  
Antiguo 18/07/2005, 12:07
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 21 años, 5 meses
Puntos: 53
la primera me dio el mismo resultado..

de la converson de string a date.

el segundo me presenta asi la fecha y la ganadora la seguda..

para u_golman.

Gracias a los dos... y siempre ya saben los espero alla por vb por cualquier problema.
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #17 (permalink)  
Antiguo 18/07/2005, 12:10
Avatar de dobled  
Fecha de Ingreso: enero-2002
Ubicación: Rancagua - Chile
Mensajes: 1.328
Antigüedad: 23 años, 3 meses
Puntos: 2
oye checaste la configuracion del idioma en el server sql por que a mi me muestra asi la fecha 18/07/2004, seguro tienes cambiada la configuración
__________________
Usa títulos específicos y con sentido
En las listas de correo o en los grupos de noticias, la cabecera del mensaje es tu oportunidad de oro para atraer la atención de expertos cualificados en aproximadamente 50 caracteres o menos. No los desperdicies en balbuceos como "Por favor ayúdame" (de "POR FAVOR AYÚDAME!!!" ya ni hablamos). No intentes impresionarnos con lo profundo de tu angustia; mejor usa ese preciado espacio para una descripción lo más concisa posible del problema.
  #18 (permalink)  
Antiguo 18/07/2005, 12:12
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 21 años, 5 meses
Puntos: 53
si ami me las presenta igual pero esqueno me reconoce ese formato sepa dios porque..

nos vemos..
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #19 (permalink)  
Antiguo 18/07/2005, 12:43
 
Fecha de Ingreso: abril-2004
Ubicación: México D.F.
Mensajes: 1.724
Antigüedad: 21 años
Puntos: 4
.....

CONVERT(char(10), expresion,105)
Con eso le das el formato que quieres de salida.
Donde expresion es el campo de fecha.
  #20 (permalink)  
Antiguo 18/07/2005, 15:42
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 21 años, 5 meses
Puntos: 53
Cita:
Iniciado por orharo2003
.....

CONVERT(char(10), expresion,105)
Con eso le das el formato que quieres de salida.
Donde expresion es el campo de fecha.
esa opcion tambien me daba problema en conversion de string, esta fue una de las primeras que intente..
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #21 (permalink)  
Antiguo 18/07/2005, 15:52
 
Fecha de Ingreso: abril-2004
Ubicación: México D.F.
Mensajes: 1.724
Antigüedad: 21 años
Puntos: 4
Entonces chécate la configuración regional, no hay de otra.
  #22 (permalink)  
Antiguo 18/07/2005, 19:47
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 21 años, 5 meses
Puntos: 53
claro ya quedo resuelto con la respuesta de u_goldman.

gracias..

nos vemos..
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #23 (permalink)  
Antiguo 07/08/2009, 08:49
Avatar de rgbarbieri  
Fecha de Ingreso: agosto-2009
Mensajes: 13
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: las Fechas en SQL Server.

podes convertirlo de la siguiente manera y vas a recibir un recordset con el formato de fecha DD/MM/YYYY

select convert(smalldatetime,convert(varchar(10),ultimafe cha,103),103) from tabla
where campodatetime between '1900-01-01' and '2079-06-06'


Es importante restringir el rango de fechas que se encuentra en el where porque, son los rangos que maneja el tipo SMALLDATETIME, por ejemplo si en la base de datos hay una fecha cargada y esta supera al 2079 y no tuvieramos aplicado el rango de fechas que especifiqué en el where, entonces no va a funcionar y arrojaría el siguiente error:

Server: Msg 296, Level 16, State 3, Line 1
The conversion of char data type to smalldatetime data type resulted in an out-of-range smalldatetime value.


Otra cosa es que en el ejemplo devuelve la fecha en formato DD/MM/YYYY porque utilicé 103, en el siguiente link se muestra la tabla completa.

msdn.microsoft.com/es-es/library/ms182418.aspx

Espero que les sirva
Ruben
  #24 (permalink)  
Antiguo 07/08/2009, 12:13
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Respuesta: las Fechas en SQL Server.

Tenemos la política de no revivir temas antiguos muy particulares, como este caso

El post se cierra
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 11:34.