Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Convertir String a Fecha (https://www.clubdelphi.com/foros/showthread.php?t=62085)

Gaim2205 03-12-2008 17:12:25

Convertir String a Fecha
 
Buen día. Sucede que tengo una tabla con un campo de tipo string donde se almacena una fecha, por ejemplo: '26/11/2008'. Lo que necesito es convertir esa cadena a entero, pero dandole el formato 20081126.

Seria facil hacer un convert pero este solo funciona si mi campo destino fuera datetime y no int ¿cierto?.

¿Alguna idea?
Gracias.

luisgutierrezb 03-12-2008 17:15:47

que base de datos utilizas? puedes hacer el cambio a tipo fecha y despues darle el formato, o usar las funciones de cadena como copy para generar el numero y lo conviertes

BlueSteel 03-12-2008 17:20:56

Cita:

Empezado por Gaim2205 (Mensaje 329420)
Buen día. Sucede que tengo una tabla con un campo de tipo string donde se almacena una fecha, por ejemplo: '26/11/2008'. Lo que necesito es convertir esa cadena a entero, pero dandole el formato 20081126.

Seria facil hacer un convert pero este solo funciona si mi campo destino fuera datetime y no int ¿cierto?.

¿Alguna idea?
Gracias.

pero igual se puede hacer desde SQL...

primero debes convertir la fecha en un string, y luego pasar ese string a numerico

yo probe esto y me funcionó super

Código SQL [-]
Select Convert(Numeric, (CONVERT(Char(10), Horario.Hor_Fecha, 112)))
From Horario

Salu2:p:D

Gaim2205 03-12-2008 17:40:37

Disculpen que omití ese detalle, utilizo SQL Server 2000.
Voy a replantear el problema: ¿Cómo hago para convertir '26/11/2008' (string) a datetime?

Código SQL [-]
select cast(mov_date as datetime) from bbstat_temp_sql

intenté eso pero obviamente no funcionó, ¿qué es lo que me falta?

Gracias.

Edito: Gracias bluesteel por tu respuesta, la leí hasta despues de haber posteado este mensaje. Pero el problema no era convertir fecha -> string -> entero sino string -> fecha -> entero. Aunque como dije antes, quisiera solamente saber como convertir de string a fecha. Lo demás ya lo tengo claro.

hecospina 03-12-2008 20:26:38

Hola
No se si en sql server te pueda funcionar o si exista substring

en caso de que si exista podrias hacerlo asi

Código SQL [-]
select substring(campo from 7 for 4)||substring(campo from 4 for 2)||substring(campo from 1 for 2) from tabla

el resultado que tendras es 20081126 como lo requieres originalemente
si lo necesitas en formato fecha tendras que adicionar unas cositas

Código SQL [-]
select cast(substring(campo from 4 for 2)||'/'||substring(campo from 1 for 2)||'/'||substring(campo from 7 for 4)) as date) from tabla

Espero te funcione en sql server

luisgutierrezb 03-12-2008 21:19:41

puedes usar el cast para convertir el string en fecha, solo te falto un pqueño detalle:

Código SQL [-]
Set Dateformat dmy --pone el formato de fecha en dia mes año, por default es mdy
select cast(mov_date as datetime) from bbstat_temp_sql

aclaraciones:

1.- hecospina > MS SQL no maneja substring
2.- el set Dateformat es solo el formato para conversion no para mostrar

hecospina 03-12-2008 22:56:21

Hola
Luis
Me imagino que tiene una funcion que sea similar, por ejemplo COPY como tu mismo lo indicas en un post anterior y podria utilizarla

luisgutierrezb 04-12-2008 03:14:10

asi es, tiene una similar, pero segun recuerdo es muy engorrosa...


La franja horaria es GMT +2. Ahora son las 04:58:56.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi