Ler dia, mes e ano de uma campo tipo data

(Herberto Silva) #1

Pretendo Ler de um campo data e atribuir a uma variavel (separadamente) e gravar noutro campo os valores do dia, mes e ano desse campo:
supondo que tenho o campo minhadata=“12-09-2009”
quero colocar nos campos correspondentes e separados os valores do dia mes e ano
meudia=12
meumes=09
meuano=2009

(Tiago Kirsten) #2

Boa tarde,

Use a função substr, se a sua data for no formato DDMMAAAA:

$dia_atual = (substr($data_atual,0,2));
$mes_atual = (substr($data_atual,2,2));
$ano_atual = (substr($data_atual,4,4));

Abraço

(Eduardo Alves) #3

Estou tentando trabalhar em um campo de lookup com data e a função DAYNAME do Mysql.

Estou tentando comparar 2 campos para que se derem === eu possa dar como dia de rodizio.

/* AQUI EU PEGO O DIA DE RODIZIO DESTE MOTORISTA */
sc_lookup(DIARODIZIO, "SELECT dia_rodizio_ing FROM adm_clientes WHERE ClienteId = ‘{id_motorista}’ ");

/* resultado MONDAY */

/* AQUI EU PEGO O NOME DO DIA NO CAMPO EM OUTRA TABELA - PARA COMPARA-LO */

sc_lookup(DIAINGLES, "DAYNAME(data_chegada) FROM adm_veiculos_pa WHERE id_motorista = ‘{id_motorista}’ ");

$diario1 = $DIARODIZIO[0][0];
$diario2 = $DIAINGLES[0][0];

Como faço a comparação de um com ou outro para, se forem iguais eu dar o resultado em um campo de DIA DE RODIZIO ???

tentei assim mais deu erro:

if ‘$diario1’ = ‘$diario2’

{
{rodizio} = “RODIZIO”);
}

else

{
{rodizio} = “-” ;
}

Alguem poderia dar essa luz ??? vlw

(Diogo Toscano) #4

Seu select ta errado …

sc_lookup(DIAINGLES, "DAYNAME(data_chegada) FROM adm_veiculos_pa WHERE id_motorista = ‘{id_motorista}’ ");

Falta o “SELECT”.

if ‘$diario1’ = ‘$diario2’ são com dois == …

Apos o if, vc fez essa linha: {rodizio} = “RODIZIO”);

Esse parentesis da direita vai dar erro de php …

(Eduardo Alves) #5

Blz diogo, fiz de outra maneira… o unico problema que estou tendo agora é para setar o campo da minha consulta na where:

SELECT CASE WHEN DAYNAME(data_chegada)=(SELECT dia_rodizio_ing FROM adm_clientes WHERE ClienteId = ‘{id_motorista}’) THEN “RODIZIO” ELSE “NÃO RODIZIO” END FROM adm_veiculos_pa WHERE id_motorista = ‘{id_motorista}’

o ID VEM VAZIO.

AGORA se eu colocar

SELECT CASE WHEN DAYNAME(data_chegada)=(SELECT dia_rodizio_ing FROM adm_clientes WHERE ClienteId = ‘841’) THEN “RODIZIO” ELSE “NÃO RODIZIO” END FROM adm_veiculos_pa WHERE id_motorista = ‘841’

ele dá certo… enfim, não estou conseguindo passar o parametro do meu campo {id_motorista}

voce sabe o que pode ser isso ???

(Diogo Toscano) #6

qual o tipo de aplicação?

em que evento voce esta colocando esse codigo?

poe a aplicação no modo debug e mostra um print …

(Eduardo Alves) #7

eu to fazendo uma consulta… não estou conseguindo pegar os valores do campo id_motorista da mesma

(Diogo Toscano) #8

isso ai eh pra ta no onrecord … mostra a tela no modo debug pra gente ver o comando sql executado.

(Eduardo Alves) #9

Blz, troquei para OnRecord e funcionou… obrigado Diogo … um abraço

(Diogo Toscano) #10

e estava aonde?

(Eduardo Alves) #11

No OnRecord mesmo… eu tinha colocado no OnValidate

(Diogo Toscano) #12

onvalidate é apos clicar no botao de atualizar … n ia atribuir o valor nunca :-p