Operações com o campo do tipo TIME em MySQL [RESOLVIDO]

1. Operações com o campo do tipo TIME em MySQL [RESOLVIDO]

vinicius
vinicius_souza

(usa Ubuntu)

Enviado em 14/06/2013 - 18:15h

Boa noite pessoal,
Vou mostrar aki as principais partes do meu banco que você devem saber.
Tabela usuarios
Campos(
id(int 11),
nome(varchar 100),
bancosegsex(time))

tabela banco
Campos(
id(int 11),
ent1(time),
sai1(time),
ent2(time),
sai2(time),
ent3(time),
sai3(time),
ent4(time),
sai4(time),
banco(time),
extras(time)
)

na tabela banco para que eu possa achar o banco eu faço o seguinte UPDATE;
UPDATE banco SET ((sai4-ent4)+(sai3-ent3)+(sai2-ent2)+(sai1-ent1)) ESSA FUNCIONA OK
e para saber o campo estras eu faço essa UPDATE;
UPDATE banco INNER JOIN usuarios ON (usuarios.id=banco.usuarios_id) SET banco.extras=banco.banco-usuarios.bancosegsex


Porém essa segunda UPDATE me retorna algo nada a ver, estou fazendo da forma correta por se tratar de campos time?.



  


3. Re: Operações com o campo do tipo TIME em MySQL [RESOLVIDO]

vinicius
vinicius_souza

(usa Ubuntu)

Enviado em 16/06/2013 - 11:18h

Ainda não sanou a minha dúvida e para piorar fiz uma select para ver o que ela me retorna e olha só abaixo.

SELECT
TIME_FORMAT(b.banco,'%H:%i') AS Banco,
TIME_FORMAT(u.bancosegsex,'%H:%i') AS 'Banco diario',
TIME_FORMAT(b.banco-u.bancosegsex,'%H:%i') AS Resultado
FROM
banco b
INNER JOIN usuarios u ON(u.id=b.usuarios_id)
WHERE
b.id=162

e o resultado

+----------------------------------+
|Banco | Banco diario | Resultado |
|05:49 | 06:00 | -00:51 |
+----------------------------------+

Como que 05:49-06:00 pode dar -00:51.
O resultado correto deveria ser -00:11.
O que está errado.
Obs.: Um desses dois exemplos que você Bluckminster me deu tinha um FROM em UPDATE testei e não funcionou, isso ai está certo?


4. Re: Operações com o campo do tipo TIME em MySQL [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 16/06/2013 - 12:04h

Você leu ou simplesmente saiu copiando os comandos e executando?


5. Re: Operações com o campo do tipo TIME em MySQL [RESOLVIDO]

vinicius
vinicius_souza

(usa Ubuntu)

Enviado em 16/06/2013 - 12:17h

Buckminster escreveu:

Você leu ou simplesmente saiu copiando os comandos e executando?


Eu li e entendi.
O que não intendi foi, como pode colocar um FROM em uma UPDATE.Quando eu tentei fazer com que o segundo link ai pediu, o banco me retornou uma mensagem de erro nessa linha
O outro link eu li também só que lá ensina apenas o básico isso eu sei fazer.
Como eu demonstrei também na SELECT, como pode o banco me retornar um resultado tão absurdo como esse ai, a única explicação que eu encontro é que para campos do tipo TIME eu devo fazer as operações de outra forma.
Att:Vinícius


6. Re: Operações com o campo do tipo TIME em MySQL [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 16/06/2013 - 12:34h

Você não leu não. Se tivesse lido teria visto que nesse teu comando

UPDATE banco INNER JOIN usuarios ON (usuarios.id=banco.usuarios_id) SET banco.extras=banco.banco-usuarios.bancosegsex

o SET deve vir antes e não precisa todos esses campos para trazer somente o campo extras.

Veja a sintaxe básica que está no primeiro link:
UPDATE nome_tabela SET nome_coluna1=expr1 [, nome_coluna2=expr2 ...] [WHERE definição_where]

E se tivesse lido veria que o segundo link é um exemplo do SQL Server e eu enviei somente como isso mesmo, um exemplo.


Leia isto agora:
http://ftp.nchu.edu.tw/MySQL/doc/refman/4.1/pt/time.html

http://ftp.nchu.edu.tw/MySQL/doc/refman/4.1/pt/date-and-time-types.html

http://ftp.nchu.edu.tw/MySQL/doc/refman/4.1/pt/column-types.html

Olha só, para fazer operações um pouco mais avançadas em Bancos de Dados, você deve dominar completamente o básico primeiro.
Veja qual a versão do teu MySql e baixe o Manual dela. Às vezes muda um comando ou outro de versão para versão, mas nada que atrapalhe muito.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts