Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal tenho os campos, data_inicio, hora_inicio e hora_final
Nos dados que estão na tela preciso que a permaneça por mais 5 minutos hora_final + 05
WHERE data_inicio = CURDATE() AND hora_final + 05 ORDER BY hora_inicio ASC");
Não estou conseguindo o resultado desejado alguém pode ajudar?Quando coloco isso
AND hora_final + 05
na consulta ele não retorna nada se eu tiro ele retorna dados da data corrente
O resultado não bate.
Eu defini a tabela tabela assim:
CREATE TABLE `tabela` (
`id` int NOT NULL,
`data_inicio` date DEFAULT NULL,
`hora_inicio` datetime DEFAULT NULL,
`hora_final` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
com esses dados:
id data_inicio hora_inicio hora_final
1 2023-03-18 2023-03-17 00:00:00 2023-03-17 13:00:00
2 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00
e o resultado foi o mesmo para
select * from tabela where data_inicio = curdate() order by hora_inicio asc;
select * from tabela where data_inicio = curdate() and hora_final order by hora_inicio asc;
select * from tabela where data_inicio = curdate() and hora_final + 05 order by hora_inicio asc;
Tem jeito de você colocar a estrutura de dados da tabela, bem como alguns registros?Segue a tabela Frank
CREATE TABLE IF NOT EXISTS `agendamento` (
`id_agen` int NOT NULL AUTO_INCREMENT,
`pacie_id` int NOT NULL,
`proce_id` int NOT NULL,
`profi_id` int NOT NULL,
`data_inicial` datetime NOT NULL,
`data_final` datetime NOT NULL,
`descricao` text NOT NULL,
`situacao` varchar(100) CHARACTER SET utf32 COLLATE utf32_general_ci NOT NULL COMMENT 'agendado\r\nOrçamento\r\npendente\r\ncancelado\r\nconcluído\r\nausente',
`agendado_por` int NOT NULL,
`editado por` int NOT NULL,
`hora_edit` datetime NOT NULL,
PRIMARY KEY (`id_agen`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf32;
E os dados
INSERT INTO `agendamento` (`id_agen`, `pacie_id`, `proce_id`, `profi_id`, `data_inicial`, `data_final`, `descricao`, `situacao`, `agendado_por`, `editado por`, `hora_edit`) VALUES
(1, 2, 1, 1, '2023-02-23 14:33:29', '2023-02-23 14:33:29', 'Descrição consulta', 'Agendado', 0, 0, '0000-00-00 00:00:00'),
(2, 3, 1, 1, '0000-00-00 00:00:00', '0000-00-00 00:00:00', 'Descrição consulta', 'Agendado', 1, 0, '0000-00-00 00:00:00'),
(3, 2, 3, 1, '0000-00-00 00:00:00', '0000-00-00 00:00:00', 'Descrição consulta', 'Agendado', 2, 0, '0000-00-00 00:00:00');Agora, já temos material para trabalhar. Nessa tabela que você apresentou não existem os campos data_inicio, hora_inicio e hora_final que você comentou no começo do debate.
Assim, tenho que readaptar a consulta.
Se eu pedir
select * from agendamento where data_inicial = curdate()
Isso não vai retornar nada, pois a data_inicial foi definido como datetime e curdate( ) é uma função que só trabalha com data.
Para ajustar a informação da tabela com a função curdate( ), o novo comando seria assim:
select * from agendamento where date(data_inicial) = curdate()
Por outro lado, essa tabela agendamento tem muitas informações que não dá para colocar na unha. Seria necessário no mínimo um código em PHP para poder registrar os eventos.
Você tem aí o código PHP?
E qual é o resultado indesejado que aparece na tela?