Autor Tópico: Campos Data e Hora para Campo DataTime  (Lida 725 vezes)

R.O.N.A.L.D.O

  • Avançado
  • ****
  • Mensagens: 493
    • RC Sistemas Soluções Informáticas
    • Email
Campos Data e Hora para Campo DataTime
« Online: Dezembro 30, 2015, 08:56:35 am »
Senhores,

Estou com um probleminha que é simples mas não sei como resolver.

Tenho numa tabela campos separados para Data e Hora, e preciso jogar esses valores para outra tabela onde o campo é unificado DateTime.

Como fazer isso ?
Tem como fazer isso com alguma função do MySQL, ou tem que converter tudo para string e depois re-converter para datetime via PHP ?
Ronaldo Cocuroci
Analista de Sistemas
RC Sistemas Soluções Informáticas
www.rc-sistemas.com

Rodrigo Goulart Padovezzi

  • Expert
  • *****
  • Mensagens: 1045
    • Email
Re:Campos Data e Hora para Campo DataTime
« Responder #1 Online: Janeiro 01, 2016, 12:16:51 pm »
Você pode unir os campos em uma variável, separar cada item com substring e depois atualizar essa tabela com o valor da variável, exemplo:
{campodata} = "20151231";
{campohor}  = "130720";
$data_hora = subst({campodata},0,4)."-".substr({campodata},5,2)."-".substr({campodata},7,2)." ".substr({campohora},0,2).":".substr({campohora},2,2).":".substr({campohora},4,2);

ficando aaaa-mm-dd hh:mm:ss

Aí basta fazer o update por essa variável.

R.O.N.A.L.D.O

  • Avançado
  • ****
  • Mensagens: 493
    • RC Sistemas Soluções Informáticas
    • Email
Re:Campos Data e Hora para Campo DataTime
« Responder #2 Online: Janeiro 04, 2016, 09:18:12 am »
Rodrigro,

Mas no seu exemplo você partiu de dois campos baseados em strings, e eu tenho dois campos do banco de dados, um Date e outro Time, não tem como trabalhar diretamente com eles ? Ou não tem jeiro, vou ter que converter para string para depois juntar e jogar no banco novamente ?

Feliz 2016!
Ronaldo Cocuroci
Analista de Sistemas
RC Sistemas Soluções Informáticas
www.rc-sistemas.com

ricardosenaspbr

  • Intermediário
  • ***
  • Mensagens: 101
  • Non scholae, sed vitae discimus
Re:Campos Data e Hora para Campo DataTime
« Responder #3 Online: Janeiro 04, 2016, 10:31:15 am »
Rodrigro,

Mas no seu exemplo você partiu de dois campos baseados em strings, e eu tenho dois campos do banco de dados, um Date e outro Time, não tem como trabalhar diretamente com eles ? Ou não tem jeiro, vou ter que converter para string para depois juntar e jogar no banco novamente ?

Feliz 2016!


Faz em um blank, recupera em variável depois da um insert com looping ... Conforme informações acima.

Feliz ano novo!!
atenciosamente,

Ricardo Sena
Analista de T.I.
V. 8.1
"Non scholae, sed vitae discimus"(Não estudamos para a escola, mas para a vida)

R.O.N.A.L.D.O

  • Avançado
  • ****
  • Mensagens: 493
    • RC Sistemas Soluções Informáticas
    • Email
Re:Campos Data e Hora para Campo DataTime
« Responder #4 Online: Janeiro 20, 2016, 10:45:32 am »
Meus Caros,

Eu continuo com dificuldade de fazer isso que eu preciso. :(

Vou repetir a explicação:

Eu tenho numa tabela do banco de dados (MySQL) dois campos separados, um chamado Data do tipo Date e outro chamado Hora do tipo Time.

Eu preciso unificar esses dois campos numa outra tabela num outro campo chamado DataHora do tipo DateTime.

Não estou conseguindo tratar esses dois campos separados para montar uma nova string com a junção dos dois e então inserir na nova tabela.

Deve ser algo simples, mas eu não estou sabendo como fazer isso, por favor alguém me ajude.

Agradeço antecipadamente a atenção.
Ronaldo Cocuroci
Analista de Sistemas
RC Sistemas Soluções Informáticas
www.rc-sistemas.com

Haroldo

  • Expert
  • *****
  • Mensagens: 6268
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Campos Data e Hora para Campo DataTime
« Responder #5 Online: Janeiro 20, 2016, 11:03:15 am »
use o concate do mysql.

R.O.N.A.L.D.O

  • Avançado
  • ****
  • Mensagens: 493
    • RC Sistemas Soluções Informáticas
    • Email
Re:Campos Data e Hora para Campo DataTime
« Responder #6 Online: Janeiro 20, 2016, 11:15:18 am »
Haroldo,

Eu preciso trabalhar com os campos que estão num formulário do SC, na hora de salvar o formulário é que preciso juntar esses dois campos e salvar o datetime numa outra tabela.
Ronaldo Cocuroci
Analista de Sistemas
RC Sistemas Soluções Informáticas
www.rc-sistemas.com

Haroldo

  • Expert
  • *****
  • Mensagens: 6268
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Campos Data e Hora para Campo DataTime
« Responder #7 Online: Janeiro 20, 2016, 11:20:08 am »
ja tentou na onbeforeinsert:

{campo_datetime}={campo_date}." ".{campo_time};

//atente-se ao formato interno dos campos.


R.O.N.A.L.D.O

  • Avançado
  • ****
  • Mensagens: 493
    • RC Sistemas Soluções Informáticas
    • Email
Re:Campos Data e Hora para Campo DataTime
« Responder #8 Online: Janeiro 20, 2016, 11:34:21 am »
Tentei isso, mas dá erro de dados inválidos no campo datetime .
Ronaldo Cocuroci
Analista de Sistemas
RC Sistemas Soluções Informáticas
www.rc-sistemas.com

Kleyber

  • Expert
  • *****
  • Mensagens: 2235
    • Email
Re:Campos Data e Hora para Campo DataTime
« Responder #9 Online: Janeiro 20, 2016, 11:37:59 am »
Ronaldo,

Se tu deres um echo nos dois campos ({campo_date} e {campo_time}) o que te aparece?
Kleyber Derick

ITIL® V3 Foundation Certified
Analista de Sistemas
São Luís - Maranhão
www.tkinformidia.net

R.O.N.A.L.D.O

  • Avançado
  • ****
  • Mensagens: 493
    • RC Sistemas Soluções Informáticas
    • Email
Re:Campos Data e Hora para Campo DataTime
« Responder #10 Online: Janeiro 20, 2016, 11:41:43 am »
Kleyber,

Null e Null. :(
Ronaldo Cocuroci
Analista de Sistemas
RC Sistemas Soluções Informáticas
www.rc-sistemas.com

R.O.N.A.L.D.O

  • Avançado
  • ****
  • Mensagens: 493
    • RC Sistemas Soluções Informáticas
    • Email
Re:Campos Data e Hora para Campo DataTime
« Responder #11 Online: Janeiro 20, 2016, 11:45:30 am »
Será que isso aqui daria certo ????

   $data = {EnvioData};
   $timestamp = strtotime($data);
   $ano = date('Y', $timestamp);
   $mes = date('m', $timestamp);
   $dia = date('d', $timestamp);

        $hora = {EnvioHora};
   $timestamp = strtotime($hora);
   $hor = date('H', $timestamp);
   $min = date('i', $timestamp);
   $seg = date('s', $timestamp);
   
   $date = new DateTime();
   $date->setDate($ano,$mes,$dia);
   $date->setTime($hor,$min,$seg);
   $datetime = $date->format("Y-m-d H:i:s");

 E aí usaria essa variável $datetime no insert. 
   
Ronaldo Cocuroci
Analista de Sistemas
RC Sistemas Soluções Informáticas
www.rc-sistemas.com

R.O.N.A.L.D.O

  • Avançado
  • ****
  • Mensagens: 493
    • RC Sistemas Soluções Informáticas
    • Email
Re:Campos Data e Hora para Campo DataTime
« Responder #12 Online: Janeiro 20, 2016, 12:05:06 pm »
Eu testei pelo esquema acima, mas a data inserida não vai com a hora, fica zereada, por exemplo: "2016-01-28 00:00:00".
Ronaldo Cocuroci
Analista de Sistemas
RC Sistemas Soluções Informáticas
www.rc-sistemas.com

Kleyber

  • Expert
  • *****
  • Mensagens: 2235
    • Email
Re:Campos Data e Hora para Campo DataTime
« Responder #13 Online: Janeiro 20, 2016, 02:31:53 pm »
Ronaldo,
Kleyber,

Null e Null. :(


Não entendi. Estes valores não estão no banco de dados? Se eles já existem em uma tabela, não deveria vir Null. Se tem valores, a sugestão do Haroldo vai dar certo, a de colocar:
{campo_datetime}={campo_date}." ".{campo_time};

Kleyber Derick

ITIL® V3 Foundation Certified
Analista de Sistemas
São Luís - Maranhão
www.tkinformidia.net

Haroldo

  • Expert
  • *****
  • Mensagens: 6268
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Campos Data e Hora para Campo DataTime
« Responder #14 Online: Janeiro 20, 2016, 02:51:51 pm »
mktime

(PHP 4, PHP 5, PHP 7)
mktime — Obtém um timestamp Unix para uma data

Descrição ¶

int mktime ([ int $hora [, int $minuto [, int $second [, int $mes [, int $dia [, int $ano [, int $is_dst ]]]]]]] )
Retorna o timestamp Unix correspondente para os argumentos dados. Este timestamp é um longo inteiro contendo o número de segundos entre a Era Unix (January 1 1970 00:00:00 GMT) e o tempo especificado.

Argumentos podem ser omitidos da direita para esquerda; quaisquer argumentos assim omitidos serão definidos para o valor atual de acordo com a data e a hora local.