O MySQL recupera e mostra valores TIME
no
formato 'HH:MM:SS'
(ou no formato
'HHH:MM:SS'
para valores grandes). Volares
TIME
podem estar na faixa de
'-838:59:59'
até
'838:59:59'
. A razão para a parte da hora
ser tão grande é que o tipo TIME
pode ser
usado não apenas para representar a hora do dia (que deve ser
menor que 24 horas), mas também para tempo restante ou
intervalos de tempo entre dois eventos(que podem ser maior que
24 horas ou mesmo negativo).
Você pode especificar valores TIME
de
variadas formas:
Como uma string no formato 'D
HH:MM:SS.fração'
. (Note que o MySQL não
armazena ainda frações para a coluna time.) Pode-se
também utilizar uma das seguintes sintaxes ``relaxadas'':
HH:MM:SS.fração
,
HH:MM:SS
, HH:MM
,
D HH:MM:SS
, D HH:MM
,
D HH
ou SS
. Aqui
D
é um dia entre 0-33.
Como uma string sem delimitadores no formato
'HHMMSS'
, desde que ela tenha sentido
como uma hora. Por exemplo, '101112'
é
esntendido como '10:11:12'
, mas
'109712'
é ilegal (a parte dos minutos
não tem nenhum sentido) e se torna
'00:00:00'
.
Como um número no formato HHMMSS
,
desde que tenha sentido como uma hora. Por exemplo,
101112
é entendido com
'10:11:12'
. Os formatos alternativos
seguintes também são entendidos: SS
,
MMSS
, HHMMSS
e
HHMMSS.fração
. Note que o MySQL ainda
não armazena frações.
Como o resultado de uma função que retorne um valor que
é aceitável em um contexto do tipo
TIME
, tal como
CURRENT_TIME
.
Para valores TIME
especificados como uma
string que incluem delimitadores de hora, não é necessário
especificar dois dígitos para valores de hora, minutos ou
segundos que sejam menores que 10
.
'8:3:2'
é o mesmo que
'08:03:02'
.
Seja cuidadoso ao atribuir valores TIME
``pequenos'' para uma coluna TIME
. Sem dois
pontos, o MySQL interprete valores assumindo que os digitos
mais a direita representam segundos. (MySQL interpreta valores
TIME
como tempo decorrido ao invés de hora
do dia.) Por exemplo, você poderia pensar em
'1112'
e 1112
significam
'11:12:00'
(11 horas e 12 minutos), mas o
MySQL o intepreta como '00:11:12'
(onze
minutos e 12 segundos). De forma similar,
'12'
e 12
são
interpretados como '00:00:12'
. Valores
TIME
com dois pontos, em contrapartida,
são tratados como hora do dia. Isto é,
'11:12'
significará
'11:12:00'
, não
'00:11:12'
.
Valores que são legais mas que estão fora da faixa
permitidas são ajustados para o valor limita da faixa mais
apropriado. Por exemplo, '-850:00:00'
e
'850:00:00'
são convertidos para
'-838:59:59'
e
'838:59:59'
, respectivmente.
Valores TIME
ilegais são convertidos para
'00:00:00'
. Note que como
'00:00:00'
é um valor
TIME
, não temos com dizer, a partir de um
valor '00:00:00'
armazenado na tabela, se o
valor original armazenado foi especificado como
'00:00:00'
ou se foi ilegal.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.