formateo de fecha

28/03/2005 - 19:46 por Daniel | Informe spam
hola grupo.
como se hace para formatear una fecha como dd/mm/yyyy que
esta en una variable varchar?
gracias.

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
28/03/2005 - 20:17 | Informe spam
Daniel,

En realidad el formateo debe hacerse en la aplicacion cliente. herramienta
de reporte o lenguaje de programacion.

Si el valor contenido en la variabla de tipo varchar, es reconocido por SQL
Server como una fecha, entonces haces un cast de la variable al tipo datetime
y luego usas CONVERT. Si el valor no es reconocido por SQL Server como un
valor de fecha, entonces debes manipular la variable haciendo uso de las
funciones de manipulacion de caracteres LEFT, RIGHT, SUBSTRING, etc.

Ejemplo:

declare @fecha varchar(8)

set @fecha = '20050328'

select convert(char(8), cast(@fecha as datetime), 103)
go


AMB

"Daniel" wrote:

hola grupo.
como se hace para formatear una fecha como dd/mm/yyyy que
esta en una variable varchar?
gracias.

Respuesta Responder a este mensaje
#2 Isaías
28/03/2005 - 20:21 | Informe spam
Para empezar, si esta en un VARCHAR, no es un DATETIME,
ahora bien, hay funciones de cadena que te permiten hacer
ciertas cosas con algo que sea o se le parezca a una fecha.

Verifica CAST/CONVERT.

Para validar que realmente sea una fecha lo que tienes en
ese VARCHAR, pues

SELECT ISDATE(MyVarchar)

Te dara un 1 en caso afirmativo, un 0 en caso negativo.

Entonces, de ser favorable la respuesta, podrias hacer
algo como:

SELECT CONVERT(CHAR(10), MyVarchar,112)

Lo que tienes que cambiar es el 112, por el formato que
gustes.
Respuesta Responder a este mensaje
#3 Alejandro Mesa
28/03/2005 - 20:33 | Informe spam
Isaías,

Se debe convertir la variable varchar a datetime antes de usar CONVERT. No
puedes aplicar un formato de fecha sobre una variable varchar.

Ejemplo:

declare @d varchar(8)

set @d = '20050328'

select convert(varchar(10), @d, 103), convert(varchar(10), cast(@d as
datetime), 103)
go


AMB

"Isaías" wrote:


Para empezar, si esta en un VARCHAR, no es un DATETIME,
ahora bien, hay funciones de cadena que te permiten hacer
ciertas cosas con algo que sea o se le parezca a una fecha.

Verifica CAST/CONVERT.

Para validar que realmente sea una fecha lo que tienes en
ese VARCHAR, pues

SELECT ISDATE(MyVarchar)

Te dara un 1 en caso afirmativo, un 0 en caso negativo.

Entonces, de ser favorable la respuesta, podrias hacer
algo como:

SELECT CONVERT(CHAR(10), MyVarchar,112)

Lo que tienes que cambiar es el 112, por el formato que
gustes.

Respuesta Responder a este mensaje
#4 Alejandro Mesa
28/03/2005 - 20:33 | Informe spam
Corrección,

declare @fecha varchar(8)

set @fecha = '20050328'

select convert(char(10), cast(@fecha as datetime), 103)
go


AMB


"Alejandro Mesa" wrote:

Daniel,

En realidad el formateo debe hacerse en la aplicacion cliente. herramienta
de reporte o lenguaje de programacion.

Si el valor contenido en la variabla de tipo varchar, es reconocido por SQL
Server como una fecha, entonces haces un cast de la variable al tipo datetime
y luego usas CONVERT. Si el valor no es reconocido por SQL Server como un
valor de fecha, entonces debes manipular la variable haciendo uso de las
funciones de manipulacion de caracteres LEFT, RIGHT, SUBSTRING, etc.

Ejemplo:

declare @fecha varchar(8)

set @fecha = '20050328'

select convert(char(8), cast(@fecha as datetime), 103)
go


AMB

"Daniel" wrote:

> hola grupo.
> como se hace para formatear una fecha como dd/mm/yyyy que
> esta en una variable varchar?
> gracias.
>
Respuesta Responder a este mensaje
#5 Isaías
29/03/2005 - 00:45 | Informe spam
Gracias

Tienes razon, antes de hacer el CONVERT / CASE, se debe
pasar la variable a tipo DATETIME

DECLARE @MyVarcharFecha VARCHAR(30)
SET @MyVarcharFecha = '19600407'
SELECT 'Yo naci un '+CONVERT(CHAR(10), CONVERT
(DATETIME,@MyVarcharFecha), 110)

Fe de erratas de mi parte, anotado .
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida