MySQL devuelve y muestra los valores TIME
en
formato 'HH:MM:SS'
(o formato
'HHH:MM:SS'
para valores de hora grandes).
TIME
tiene rango de
'-838:59:59'
a
'838:59:59'
. La razón por la que la parte de
hora puede ser tan grande es que el tipo TIME
puede usarse no sólo para representar una hora del día (que
debe ser menor a 24 horas), pero también el tiempo transcurrido
o un intervalo de tiempo entre dos eventos (que puede ser mucho
mayor a 24 horas, o incluso negativo).
Puede especificar valores TIME
en una
variedad de formatos:
Como cadena de caracteres en formato 'D
HH:MM:SS.fracción'
. También puede usar una de
las siguientes sintaxis “relajadas” :
'HH:MM:SS.fracción'
,
'HH:MM:SS'
, 'HH:MM'
,
'D HH:MM:SS'
, 'D
HH:MM'
, 'D HH'
, o
'SS'
. Aquí D
representa días y puede tener un valor de 0 a 34. Tenga en
cuenta que MySQL no almacena la fracción (todavía).
Como cadena de caracteres sin delimitadores en formato
'HHMMSS'
, mientras que tenga sentido como
hora. Por ejemplo, '101112'
se entiende
como '10:11:12'
, pero
'109712'
es ilegal (no tiene una parte de
minutos correcta) y pasa a ser
'00:00:00'
.
Como número en formato HHMMSS
, mientras
tenga sentido como hora. Por ejemplo,
101112
se entiende como
'10:11:12'
. Los siguientes formatos
alternativos también se entienden: SS
,
MMSS
, HHMMSS
,
HHMMSS.fracción
. Tenga en cuenta que
MySQL no almacena la fracción (todavía).
Como resultado de una función que retorna un valor que es
aceptable en un contexto TIME
, tal como
CURRENT_TIME
.
Para valores TIME
especificados como cadenas
de caracteres que incluyan un delimitador de las partes de hora,
no es necesario especificar dos dígitos para horas, minutos o
segundos que tengan un valor inferior a 10
.
'8:3:2'
es lo mismo que
'08:03:02'
.
Tenga cuidado con asignar valores abreviados a una columna
TIME
. Sin comas, MySQL interpreta los
valores asumiendo que los dos dígitos más a la derecha
representan segundos. (MySQL interpreta valores
TIME
como tiempo transcurrido en lugar de
horas del día.) Por ejemplo puede pensar que
'1112'
y 1112
significan
'11:12:00'
(12 minutos tras las 11 en punto),
pero MySQL los interpreta como '00:11:12'
(11
minutos, 12 segundos). Similarmente, '12'
y
12
se interpretan como
'00:00:12'
. Los valores
TIME
con comas, por contrario, se tratan
siempre como hora del día. Esto es, '11:12'
significa '11:12:00'
, no
'00:11:12'
.
Los valores fuera del rango de TIME
pero que
son legales se cambian por el valor límite de rango más
cercano. Por ejemplo '-850:00:00'
y
'850:00:00'
se convierten en
'-838:59:59'
y
'838:59:59'
.
Valores TIME
ilegales se convierten a
'00:00:00'
. Tenga en cuenta que como
'00:00:00'
es un valor
TIME
legal, no hay forma de decir si un valor
'00:00:00'
almacenado en una tabla, se
insertó como '00:00:00'
o como valor ilegal.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.