Antes de empezar voy a tratar de explicar que son las Fechas para SqlServer.
El Sql Server tiene básicamente dos tipos de datos donde se pueden almacenar fechas propiamente dichas, Datetime y SmallDateTime. En este cuadro veremos las diferencias entre estos dos tipos de Datos.
DateTime
Valores de Fecha y Hora que están comprendidos entre 1/1/1763 y 31/12/9999. La hora se expresa con una exactitud de hasta 1/300 de segundo
SamallDateTime
Valores de Fecha y Hora que están comprendidos entre 1/1/1900 y 6/6/2079. El grado de precisión de la hora llega hasta el minuto
Bien ahora conocemos los tipos de datos de nuestro motor, pero la gran pregunta, ¿Cómo Guarda internamente Sql Server las Fechas? ¿Lo hace en formato MM/DD/YYY o lo hará en DD/MM/YYYY?, bueno lamento decirles que nuestro motor siempre guarda las fechas de una sola forma y no esta referida a ningún formato (Americano, Español, Japonés ) como recién mencione
¿Entonces? Bueno Sql Server guarda las fechas DateTime como enteros de 4 Bytes (Los primeros 4 Bytes almacenan la Fecha y los otros 4 Bytes la Hora), en SmallDatetime como tienen menor precisión en lugar de ser dos grupos de 4 son dos grupos de 2.
Bien ahora sabemos también no solo que tipos de datos tenemos para guardar nuestras fechas y horas sino que también como las guarda el motor realmente.
Con todo esto me estoy preguntando, ¿Entonces porque cuando hago algún Select me trae las fechas en un formato X (como por ejemplo el Americano)?
Claro esto es así porque leer las fechas en grupos de Bytes no es muy elegante que digamos y nuestros usuarios no estarían muy contentos.
Usuarios que han visto este tema también han visto...
- Insertar un registro SQL
- Recuperar una base de datos
- Arquitectura de las bases de datos
- EXISTS y ALL en SQL
- Operadores en la consulta select

Información legal | Política de Privacidad | Contacte con nosotros
Otro proyecto de Factoría de Internet. Copyright© 2003-2008 Factoría de Internet S.L.. Todos los derechos reservados.