Quebra utilizando hora

(system) #1

Como fazer em uma consulta, uma quebra por hora em um campo com hora, minuto e segundo ?

(system) #2

Olá Bárbara,

Através da função substring disponibilizada no comando SQL é possível recuperar parte de uma string.
Exemplo:

SELECT
ClienteId,
NomeCliente,
NomeContato,
CargoContato,
Tpcli,
CIC_CNPJ,
substring(hora_total,1,2) as Hora,
email
FROM
adm_clientes

Ou seja, será criado um campo Hora contendo apenas o valor da hora, excluindo assim o minuto e o segundo.
Na opção quebra, selecionar o campo Hora para realizar a quebra.

(Haroldo) #3

Pode ser também com as funções específicas para tempo:
HOUR(hora)

Retorna a hora para hora. A faixa do valor retornado será de 0 a 23 para o valor hora do dia.

mysql> SELECT HOUR(‘10:05:03’);
-> 10

No entanto, a faixa dos valores TIME atualmente são muito grandes, assim HOUR pode retornar valores maior que 23:

mysql> SELECT HOUR(‘272:59:59’);
-> 272

MINUTE(hora)

Retorna o minuto para hora, na faixa de 0 a 59:

mysql> SELECT MINUTE(‘98-02-03 10:05:03’);
-> 5

SECOND(hora)

Retorna o segundo para hora, na faixa de 0 a 59:

mysql> SELECT SECOND(‘10:05:03’);
-> 3

MICROSECOND(expr)

Retorna os microsegundos da expressão time ou datetime em expr como um número na faixa de 0 a 999999.

mysql> SELECT MICROSECOND(‘12:00:00.123456’);
-> 123456
mysql> SELECT MICROSECOND(‘1997-12-31 23:59:59.000010’);
-> 10

MICROSECOND() está disponível a partir do MySQL 4.1.1.