Hace poco me he enfrentado a un problema que puede suceder al migrar una base de datos a otro entorno mssql que no comparta el mismo lenguaje de instalación que el que teníamos en un principio.
En este caso ha sido al restaurar una base de datos que se encontraba en un sql con lenguaje “español” a otro que habían instalado en “us_english”. Con el primero las fechas (campos de tipo datetime) se muestran en formato “dd/mm/yyy” pero en inglés las fechas tienen el formato “mm/dd/yyyy”.
Si mostramos la tabla desde el Microsoft Sql Server Managmentent Studio veremos que las fechas se muestran tal y como hemos importado, pero el problema viene cuando queremos hacer una consulta por ejemplo desde nuestra web y Sql Server nos devuelve la fecha, entonces veremos que se produce un error que esta relacionado con el formato de la fecha.
Puestos en situación, vamos manos a la obra.
¿Como ver el lenguaje de Sql Server?
select @@language
Si mssql ha sido instalado en inglés seguramente obtendrás us_english como resultado.
¿Como ver todos los lenguajes disponibles y sus propiedades?
sp_helplanguage
¿Como establecer el lenguaje?
De esta manera establecemos el lenguaje español para todas las consultas que lancemos desde la sesión y con el usuario que estemos conectados:
SET LANGUAGE Español
También podemos, por ejemplo en el caso de nuestra web, antes de lanzar una consulta sql especificar el dateformat deseado en cada caso, indicando:
set dateformat dmy
¿Como establecer el lenguaje predeterminado para TODAS las bases de datos del servidor?
De esta manera conseguimos que por defecto se devuelvan las fechas en formato dd/mm/yyyy. Lo que debemos hacer es abrir Microsoft Sql Server Managmentent Studio, ir a las propiedades del servidor SQL y en el apartado avanzado, modificar la opción idioma predeterminado por Español.
Además hay que tener en cuenta el lenguaje por defecto de los Inicios de sesión que existan en el servidor, ya que los que creemos nuevos a partir de ahora lo harán con lenguaje español. Para ello:
USE [master]
GO
ALTER LOGIN [serversql\sergiosainz] WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[Spanish]
GO
También es posible modificar el idioma por el deseado desde las propiedades del usuario.
Entradas (RSS)