Fórum Pesquisa Mysql com datetime #461634
21/11/2013
0
CREATE TABLE `tabela1` ( `id` int(11) NOT NULL AUTO_INCREMENT, `usuario` varchar(100) DEFAULT NULL, `tipo` varchar(255) DEFAULT NULL, `ads` int(10) DEFAULT NULL, `data` datetime DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=11481 DEFAULT CHARSET=latin1;
e quero fazer esta consulta, porém não funciona:
select usuario,data,count(usuario) as total from tabela1 WHERE data BETWEEN ''2013-11-20'' AND ''2013-11-19'' group by usuario ORDER BY count(usuario) DESC
Alguém sabe o que pode ser?
Mauricio Souza,
Curtir tópico
+ 0Posts
21/11/2013
William
SELECT usuario,data,count(usuario) AS total FROM tabela1 WHERE (CAST(data AS DATE) BETWEEN '2013-11-19' AND '2013-11-20') GROUP BY usuario ORDER BY count(usuario) DESC
Gostei + 0
21/11/2013
Alex Lekao
O erro sera que nao aconteceu por causa das aspas duplas?
Gostei + 0
21/11/2013
Mauricio Souza,
Gostei + 0
21/11/2013
Alex Lekao
Vou abrir criar um tabela com a estrutura que me passou para tentar fazer testes melhores.
seria possivel vc postar alguns inserts para testar o select?
Gostei + 0
21/11/2013
Mauricio Souza,
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for tabela1
-- ----------------------------
DROP TABLE IF EXISTS `tabela1`;
CREATE TABLE `tabela1` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`usuario` varchar(100) DEFAULT NULL,
`tipo` varchar(255) DEFAULT NULL,
`ads` int(10) DEFAULT NULL,
`data` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
-- ----------------------------
-- Records of tabela1
-- ----------------------------
INSERT INTO `tabela1` VALUES ('1', 'usuario1', 'a', '1', '2013-09-02 18:36:19');
INSERT INTO `tabela1` VALUES ('11482', 'usuario2', 'b', '2', '2013-10-02 18:36:32');
INSERT INTO `tabela1` VALUES ('11483', 'usuario3', 'c', '3', '2013-11-22 18:36:41');
INSERT INTO `tabela1` VALUES ('11484', 'usuario4', 'd', '4', '2013-11-22 18:36:46');
INSERT INTO `tabela1` VALUES ('11485', 'usuario5', 'e', '5', '2013-11-13 18:36:51');
INSERT INTO `tabela1` VALUES ('11486', 'usuario6', 'f', '6', '2013-12-18 18:37:03');
Gostei + 0
21/11/2013
Mauricio Souza,
Gostei + 0
21/11/2013
William
'2013-11-20'' AND ''2013-11-19''
Gostei + 0
22/11/2013
Alex Lekao
Obrigado.
vou fazer uns testes e posto aqui... rsrs
Gostei + 0
22/11/2013
Alex Lekao
'2013-11-20'' AND ''2013-11-19''
ai nao vai mesmo ne??? rsrsr
Verifica isso Mairicio, se for so isso que o Willian falou, resolvido o problema.. rsrsr
Gostei + 0
22/11/2013
Mauricio Souza,
Gostei + 0
22/11/2013
Alex Lekao
Eu percebi o seguinte nos testes que fiz, o intervalo que vc passou nao compreendia aos dados que vc havia enviado nos inserts.
Uma outra coisa que percebi, que no between o ultimo dado, no caso a data maior, deve ter um dia a mais, achei estranho isso, mas tudo bem.
exemplo o usuario6 ele esta com data do dia 18/12, se vc colocar between '2013-11-01' and '2013-12-18' ele nao vai aparecer, vc teria que colocar and '2013-12-19', muito estranho, mas foi o que percebi nos testes que fiz.
ate remontei o script e tal, e aconteceu a mesma coisa, nao sei se tem alguma coisa a ver com o meu mysql ou com o WorkBenq mas tudo bem.
faz uns testes ai e posta pra gente ver.
abraco.
Alex - Lekao
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)