smalldatetime (Transact-SQL)
Define una fecha que se combina con una hora del día. La hora está en un formato de día de 24 horas , con segundos siempre a cero (: 00) y sin fracciones de segundo.
[!NOTA]
Use los tipos de datos time, date, datetime2 y datetimeoffset para los nuevos trabajos. Estos tipos se ajustan al estándar SQL. Son más portátiles. time, datetime2 y datetimeoffset proporcionan una mayor precisión de segundos. datetimeoffset proporciona compatibilidad de zona horaria para las aplicaciones implementadas globalmente.
Descripción de smalldatetime
Sintaxis |
smalldatetime |
Uso |
DECLARE @MySmalldatetime smalldatetime CREATE TABLE Table1 ( Column1 smalldatetime ) |
Formatos de literal de cadena predeterminados (se usa para el cliente de nivel inferior) |
No aplicable |
Intervalo de fechas |
De 1900-01-01 a 2079-06-06 Del 1 de enero de 1900 hasta el 6 de junio de 2079 |
Intervalo de horas |
De 00:00:00 a 23:59:59 2007-05-09 23:59:59 se redondeará a 2007-05-10 00:00:00 |
Intervalos de elementos |
AAAA es una cifra de cuatro dígitos comprendida entre 1900 y 2079 que representa un año. MM es una cifra de dos dígitos comprendida entre 01 y 12 que representa un mes del año especificado. DD es una cifra de dos dígitos comprendida entre 01 y 31 dependiendo del mes, que representa un día del mes especificado. hh es una cifra de dos dígitos comprendida entre 00 y 23 que representa la hora. mm es una cifra de dos dígitos comprendida entre 00 y 59 que representa los minutos. ss es una cifra de dos dígitos comprendida entre 00 y 59 que representa los segundos. Los valores de 29,998 segundos o menos se redondean a la baja hasta el minuto más cercano; los valores de 29,999 segundos o más se redondean al alza hasta el minuto más cercano. |
Longitud en caracteres |
19 posiciones como máximo |
Tamaño de almacenamiento |
4 bytes, fijo. |
Precisión |
Un minuto |
Valor predeterminado |
1900-01-01 00:00:00 |
Calendario |
Gregoriano (no incluye el intervalo completo de años.) |
Precisión de fracciones de segundo definida por el usuario |
No |
Conservación y reconocimiento del desplazamiento de zona horaria |
No |
Reconocimiento del horario de verano |
No |
Compatibilidad con ANSI e ISO 8601
smalldatetime no es conforme a ANSI ni a ISO 8601.
Convertir datos de fecha y hora
Cuando se convierte a los tipos de datos de fecha y hora, SQL Server rechaza todos los valores que no reconoce como fechas u horas. Para obtener información acerca de cómo usar las funciones CAST y CONVERT con datos de fecha y hora, vea CAST y CONVERT (Transact-SQL).
Convertir tipos smalldatetime a otros tipos de fecha y hora
En la tabla siguiente se describe lo que ocurre cuando un tipo de datos smalldatetime se convierte a otros tipos de datos de fecha y hora.
Tipo de datos al que se convierte |
Detalles de la conversión |
---|---|
date |
Se copian los valores de año, mes y día. El código siguiente muestra los resultados de convertir un valor de smalldatetime en un valor de date.
|
time(n) |
Se copian los valores de hora, minuto y segundo. Las fracciones de segundo se establecen en 0. El código siguiente muestra los resultados de convertir un valor de smalldatetime en un valor de time(4).
|
datetime |
El valor de smalldatetime se copia en el valor de datetime. Las fracciones de segundo se establecen en 0. El código siguiente muestra los resultados de convertir un valor de smalldatetime en un valor de datetime.
|
datetimeoffset(n) |
El valor de smalldatetime se copia en el valor de datetimeoffset(n). Las fracciones de segundo se establecen en 0 y el ajuste de zona horaria se establece en +00: 0. En el código siguiente se muestran los resultados de convertir un valor smalldatetime en un valor datetimeoffset(4).
|
datetime2(n) |
El valor de smalldatetime se copia en el valor de datetime2(n). Las fracciones de segundo se establecen en 0. En el código siguiente se muestran los resultados de convertir un valor smalldatetime en un valor datetime2(4).
|
Ejemplos
A.Convertir literales de cadena con segundos a smalldatetime
En el ejemplo siguiente se compara la conversión de los segundos presentes en los literales de cadena a smalldatetime.
SELECT
CAST('2007-05-08 12:35:29' AS smalldatetime)
,CAST('2007-05-08 12:35:30' AS smalldatetime)
,CAST('2007-05-08 12:59:59.998' AS smalldatetime);
Entrada |
Salida |
---|---|
2007-05-08 12:35:29 |
2007-05-08 12:35:00 |
2007-05-08 12:35:30 |
2007-05-08 12:36:00 |
2007-05-08 12:59:59.998 |
2007-05-08 13:00:00 |
B.Comparar tipos de datos de fecha y hora
En el ejemplo siguiente se comparan los resultados de convertir una cadena a cada tipo de datos de fecha y hora.
SELECT
CAST('2007-05-08 12:35:29. 1234567 +12:15' AS time(7)) AS 'time'
,CAST('2007-05-08 12:35:29. 1234567 +12:15' AS date) AS 'date'
,CAST('2007-05-08 12:35:29.123' AS smalldatetime) AS
'smalldatetime'
,CAST('2007-05-08 12:35:29.123' AS datetime) AS 'datetime'
,CAST('2007-05-08 12:35:29. 1234567 +12:15' AS datetime2(7)) AS
'datetime2'
,CAST('2007-05-08 12:35:29.1234567 +12:15' AS datetimeoffset(7)) AS
'datetimeoffset';
Tipo de datos |
Resultados |
---|---|
time |
12:35:29. 1234567 |
date |
2007-05-08 |
smalldatetime |
2007-05-08 12:35:00 |
datetime |
2007-05-08 12:35:29.123 |
datetime2 |
2007-05-08 12:35:29. 1234567 |
datetimeoffset |
2007-05-08 12:35:29.1234567 +12:15 |