[SQL Server] Cambiar formato de fechas

ArcheR

Buenas noches.

Básicamente tengo una tabla con un campo de tipo 'date' (fecha). En una consulta extraigo esas fechas, pero me salen en formato aaaa-mm-dd. Lo que quiero es saber si existe alguna función de SQL que permita modificar el formato de salida de una fecha. Antes de nada, NO QUIERO CAMBIAR EL TIPO DEL CAMPO. Lo digo porque buscando soluciones por Google veo que muchos ponen como solución usar Convert, pero eso me convierte la fecha en una string, y eso NO me sirve.

Simplemente quiero que siga siendo una fecha como tal, pero que yo pueda elegir el formato de salida que va a tener (quiero mm-dd-aaaa). Es mucho pedir? xD

Gracias!

Roscopower

No estoy muy puesto en sql server, pero creo que había una manera para cambiar el idioma del sql server y de esta manera te devuelva el campo fecha como tu quieres (mm-dd-aaaa)...

Mira aquí esta la guía: http://support.microsoft.com/kb/173907/es

ArcheR

Gracias por la guía, pero la he leído toda y no sé si hay algo mal en la BBDD mía o qué xD

He puesto el código para ver todos los idiomas que hay instalados en el servidor, y me salen la tira. He puesto el otro código que me dice cuál es el idioma que está puesto por defecto en el servidor, y lo curioso es que me pone que el idioma por defecto es el us_english, que tiene como formato de fecha lo que yo quiero (mm-dd-aaaa).

Pero sin embargo, yo hago una consulta sql normal y corriente sacando los resultados de un campo 'date', y me salen en formato aaaa-mm-dd.

A qué puede deberse eso? xD

B

Normalmente ese tipo de cosas se hace en el código dandole el formato que desees.

Merkury

#1 El formato mm-dd-aaaa es el formato de fecha US, simplemente codificalo así.

Una pregunta, si la extracción de la fecha y el formato lo quieres hacer para una web o una aplicación o algo así, puedes cambiarla con código.

ArcheR

Es para una aplicación de VB.NET. El tema es que yo saco los datos a un dataset mediante una consulta SQL, y después ese dataset pasa a ser el 'DataSource' de un 'DataGridView'.

Hay alguna forma de modificar el formato de la fecha desde el código de VB.NET?

1 respuesta
Merkury

#6 Sin convertirlo en un string, no hay manera http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

Pero vamos, que para mostrarlo realmente da igual que sea un string, ya que aunque luego tengas que operar con ese dato, puedes utilizar el dato extraido directamente.

.NET sucks XD

ArcheR

No me vale convertir la fecha a string (ya hubiera usado la función convert de SQL Server), porque después, en esos datos del DataGridView, doy la opción de ordenar por columnas, entre ellas la de las fechas, y si convierto las fechas a string, al ordenar por la columna de fechas, no ordena correctamente.

De todas formas, otra cosa rara. La base de datos tiene la collation japonesa, que tiene el formato para fechas 'aaaa-mm-dd'. Si hago una consulta de fechas en el SQL Server Management Studio, efectivamente me sale con ese formato. Pero sin embargo, en el VB.NET extraigo las fechas, y al mostrarse en el DataGridView salen con formato 'dd-mm-aaaa' xD

1 respuesta
Merkury

#8 Cambia el formato de la fecha del grid view

1 respuesta
ArcheR

#9, por lo que veo el DataGridView, a la hora de mostrar las fechas, lo hace en el formato predefinido del Windows que lo está ejecutando. Si ejecuto el programa y tengo el formato estadounidense de fechas, me saldrá en ese formato, si tengo el Windows en español, pues en nuestro formato, y así...

No lo sabía xD

Usuarios habituales