Salve Galera, estou quase finalizando um relatório porém travei em um campo.
Este relatório consiste em subtrair hora de entrada e saída, trazer em dias horas e minutos de um período.
Depois preciso calcular a média destes resultados.
eu barrei na parte de dias não vem a informação correta.
Segue select se alguem puder me dar uma força.
SELECT io.id_in_out, IOP.DOCUMENT,IO.TIME_IN entrada, IO.TIME_RELEASE_PP saida,
LPAD(TRUNC(((IO.TIME_RELEASE_PP - IO.TIME_IN) /24 )), 2, '0') || ':' ||
LPAD(TRUNC(((IO.TIME_RELEASE_PP - IO.TIME_IN) * 24 )), 2, '0') || ':' ||
LPAD(TRUNC(MOD((IO.TIME_RELEASE_PP - IO.TIME_IN) * 86400, 3600) / 60), 2, '0') || ':' ||
LPAD(TRUNC(MOD(MOD((IO.TIME_RELEASE_PP - IO.TIME_IN) * 86400, 3600), 60)), 2, '0') TEMPO
FROM DESMEMBR DD,
IN_OUT_POS IOP,
IN_OUT IO,
SPEDITEURE S,
VEHICLE V,
DRIVER D
WHERE DD.TYP_PROCESS = 'DINACI'
AND 'DI' = IOP.TYP_DOCUMENT
AND DD.NR_DI = IOP.DOCUMENT
AND IOP.ID_IN_OUT = IO.ID_IN_OUT
AND IO.ART_IN_OUT IN ('CA', 'CC', 'CCE')
AND IO.STAT <> '80'
AND S.ID_SPEDITEUR = IO.ID_SPEDITEUR
AND V.ID_VEHICLE = IO.ID_VEHICLE
AND IO.TIME_IN >= TO_DATE('01/12/2018', 'dd/mm/yyyy')
AND IO.TIME_IN <= TO_DATE('31/12/2018', 'dd/mm/yyyy')
AND D.ID_DRIVER = IO.ID_DRIVER
O resultado acima está vindo assim:
Bom dia pessoal, tenho o seguinte problema, meu back-end com PHP precisa fazer um select no banco de dados SQL server, e uma das condições para pegar o dado é a data, até ai sem problemas, se eu utilizar:
$dataInicio = $dataInicio->format('d/m/Y');
ele pega o dado sem problema algum do meu banco, porem quando foi tentado implementar em outro SQL Server, ele retorna o seguinte erro:
SQLSTATE [22007, 242]: [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]A conversão de um tipo de dados nvarchar em um tipo de dados datetime resultou em um valor fora do intervalo.
ou seja, eu acho que o problema é a forma que o sql foi instalado(inglês,português), enfim, o que eu realmente preciso e se tem como eu saber o dateformat do SQL server, antes de setar a variável da data para consulta.
no SQL do cliente se colocar o seguinte código:
$dataInicio = $dataInicio->format('m/d/y');
ele também funciona sem problema algum, o que eu preciso saber é quando utilizar qual.
Por favor,
MySQL com PHP7
Estou digitando assim:
echo "Data Ano: " . $row_registros['DATE(format([data_ano_liturgico],("d/m/Y")'] . "<br>";
Esperava esse resultado, por exemplo: 14/09/2018
Preciso fazer um update em um campo do tipo int de uma tabela para corrigir o horário e a informação que estou buscando está em um campo do tipo datetime de outra tabela. Fiz um update da seguinte forma:
update zan_m00 set m00zc=(SELECT convert(varchar(11),dataemissao,114)
FROM tab_nota_header
where dataemissao between '2018-08-01 00:00:00' and '2018-08-01 23:59:59'
and numpdv=111
and codloja=1
and numnota=74841)
where m00af='2018-08-01'
and m00za=1
and m00ac=111
and m00ad=69614
Esse update retornou a seguinte mensagem:
Falha ao converter o varchar valor '11:56:57:00' para o tipo de dados int.
No lugar onde está varchar experimentei usar int, entretanto, ele faz o update somando todo o conteúdo do campo, também usei o CAST e o problema é o mesmo.
Se eu fizer somente o select, ele retorna pra mim somente a hora, que é o que preciso, mas aí tem outro problema, no campo tipo int a hora é tudo junto 115657 e nesse select ele retorna 11:56:57.
Existe alguma forma de fazer esse update da forma que preciso?
Boa tarde.
Tenho um agendamento para inserir. Mas antes de inserir, preciso validar para ver se não há agendamento no intervalo selecionado
Hoje estou fazendo 2 campos para data inicial e final e 2 campos para horario inicial e final, mas não estou conseguindo.
Se puder me passar se a melhor forma e o datetime e como fazer essa consulta no banco.