Si su servidor SQL Server está en lenguaje inglés, el formato en que se guardan las fechas es MM/DD/YY.
Si los desarrolladores no tenemos en cuenta estos formatos de fecha, podemos ocasionar que se inserten fechas érroneas, por ejemplo si quiero consultar una fecha 05 de febrero del 2015, en formato español seria '05/02/2015', pero si nuestro servidor está en idioma inglés. a la hora de devolver los resultados, la fecha considerada sería 02 de Mayo del 2015.
Entonces, algunas de las opciones para evitar estos inconvenientes a la hora de trabajar con fechas en SQL Server es:
- Utilizar el formato estándar de ISO para enviar los datos de fecha y hora a SQL Server, que es "YYYYMMDD HH:mm:ss" (sin separadores). Con el formato ISO es más "internacional" y es independiente del idioma predeterminado. Si yo empiezo a utilizar este formato para mis consultas no tendré problemas en ninguna de mis aplicaciones por mas que nuestro usuario este configurado en Ingles, Español o lo que fuere, ni tampoco si en un Windows tengo definido en su configuración regional cualquier cosa.
Por ejemplo:
-- -- SELECT * FROM Paciente WHERE FechaNacimiento = '19820827'
Por ejemplo:
-- -- SELECT * FROM Paciente WHERE convert(varchar(10), FechaNacimiento, 103) = '27/08/1982'Así, la fecha consultada sería reconocida como el 27 de agosto de 1982. En el caso que quiera consultar dentro de un procedimiento almacenado, lo realizaría utilizando, sería de la siguiente manera:
create procedure sp_ObtenerPacientesSegunFechaNacimiento @FechaNacimientoConsulta datetime as SELECT IdPaciente, Nombres, Apellidos FROM Paciente WHERE convert(varchar(10), FechaNacimiento, 103) = convert(varchar(10), @FechaNacimientoConsulta, 103)
12/04/2014 01:22:00 p. m.
Share:
0 comentarios: