Jump to content


Photo

Pegar Dia Anterior E Atual Em Banco De Dados


  • Faça o login para participar
17 replies to this topic

#1 gennf

gennf

    A Solução está ai...

  • Usuários
  • 645 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG

Posted 14/11/2006, 17:50

Olá Pessoal!!!

Minha duvida hoje é um pouquinho, quase que completamente impossível. Pelomenos eu ainda não consegui raciocinar algo pra fazer o que quero.

Vocês que são Expert devem saber se tem como ou não.

Vamos a duvida...

Em um campo da minha tabela onde ficam cadastrados os usuários tem um campo que grava a data em Timestamp. Eu queria pegar nessa tabela o número de usuários CADASTRADOS ONTEM e o número de usuários CADASTRADOS HOJE assim como em um dos Blocos do PHP Nuke que todos aqui devem conhecer.

No PHP Nuke a data é gravada não sei o nome da Forma mas é assim: Nov, 14, 2006 mais ou menos assim. E no sistema que estou fazendo é Timestamp mas só que eu teria que arrumar uma forma de arredondar todas as datas (Ex: 1163469600 == 14-11-2006 00:00) selecionadas diretamente na query para que eu possa compara-las com 1163469600 por exemplo.

Acho que da pra entender né???

Se não der, por favor podem perguntar que eu posso responde-los.

Preciso muito disso...

==========EDITANDO==========

Pesquisando no Forum cheguei ao seguinte códio:

$sql = mysql_query("SELECT DATE_FORMAT(user_regdate, '%d/%m/%Y') as DataOntem FROM wal_users WHERE DataOntem='13112006'") or die(mysql_error());

	echo mysql_num_rows($sql);

Só que da o seguinte erro:

Unknown column 'DataOntem' in 'where clause'



Até mais a todos ;)

Edição feita por: gennf, 14/11/2006, 19:32.

Portal BatePapoBrasil
URL: www.batepapobrasil.com

----------------------------
Site desenvolvidos
URL:
VitrineABC :: Alugue Litoral :: OrtodontiaLago

#2 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 14/11/2006, 21:58

Nem é isso.

Para converter Nov, 14, 2006 para unix timestamp ficaria:
UNIX_TIMESTAMP(STR_TO_DATE(campo, '%b, %d, %Y'))

Obs.:
STR_TO_DATE() está disponível a partir do MySQL 4.1.1.

Edição feita por: Eclesiastes, 14/11/2006, 22:07.

Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#3 gennf

gennf

    A Solução está ai...

  • Usuários
  • 645 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG

Posted 14/11/2006, 23:03

Não...

É o contrário. Eu quero transformar UNIX TIMESTAMP em data de qualquer jeito que de pra u fazer uma comparação no WHERE.

Por isso pensei naquela forma.

// formata o TIMESTAMP que veio do banco de dados e transforma em dia mês e Ano
DATE_FORMAT(user_regdate, '%d/%m/%Y')


É só disso que preciso. Mas quando renomeio o campo la na frente:

DATE_FORMAT(user_regdate, '%d/%m/%Y') as DataOntem


Ele não é reconhecido para comparação aqui:

WHERE DataOntem='13112006'


Dando o seguinte erro:

Unknown column 'DataOntem' in 'where clause'


Portal BatePapoBrasil
URL: www.batepapobrasil.com

----------------------------
Site desenvolvidos
URL:
VitrineABC :: Alugue Litoral :: OrtodontiaLago

#4 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 15/11/2006, 07:47

Humm, então entendi errado.

Quando ao não reconhecimento do apelido criado, está correto, questão de precedência, ... primeiro é lido a(s) expressões na cláusula WHERE, sendo assim não é conhecido os apelidos criados no SELECT.

Mas então, você quer transformar para Nov, 14, 2006 para fazer a comparação? Se for, teria que ser usado %b, %d, %Y e não %d/%m/%Y. Esses caracteres representativos estão no manual na parte da função DATE_FORMAT().
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#5 gennf

gennf

    A Solução está ai...

  • Usuários
  • 645 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG

Posted 15/11/2006, 21:45

Pois é...

Então como seria o SELECT pra fazer essa comparação???

Tentei assim:

$sql = mysql_query("SELECT * FROM wal_users WHERE DATE_FORMAT(user_regdate, '%b, %d, %Y')='NOV, 13, 2006'") or die(mysql_error());

Mas não deu certo. Nenhum erro foi informado, mas também não foi encontrado nenhuma ocorrencia sendo que tem um cadastro feito no dia NOV, 13, 2006.

Aguardo uma luz sua Eclesiastes.

Muito obrigado desde já ;)
Portal BatePapoBrasil
URL: www.batepapobrasil.com

----------------------------
Site desenvolvidos
URL:
VitrineABC :: Alugue Litoral :: OrtodontiaLago

#6 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 16/11/2006, 09:37

Estranho ..., seu campo user_regdate é DATE / DATETIME?
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#7 gennf

gennf

    A Solução está ai...

  • Usuários
  • 645 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG

Posted 16/11/2006, 09:46

Acho que não. Pois é uma campo criado pela instalação do PHP BB.

Estou tentando criar um sistema de site integrado ao PHP BB e por isso estou usando os campos dele.

Então você acha que se eu transformar esses campos em DATE ou DATETIME meu problema será solucionado???

Vou tentar pra ver o que acontece.

Muito obrigado pela ajuda Mestre ;)
Portal BatePapoBrasil
URL: www.batepapobrasil.com

----------------------------
Site desenvolvidos
URL:
VitrineABC :: Alugue Litoral :: OrtodontiaLago

#8 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 16/11/2006, 10:01

Digo isso porque você usou DATE_FORMAT(), ... e ela espera um dos formato DATE / DATETIME.

Mas que confusão! :D

De uma vez por todas, que formato está a data no campo user_regdate? :P
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#9 gennf

gennf

    A Solução está ai...

  • Usuários
  • 645 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG

Posted 16/11/2006, 11:20

Ele está em TIMESTAMP e o campo do banco acredito que seja VACHAR...

Acho que apesar de estar usando o PHP BB mesmo que eu mude os campos para DATETIME ou até mesmo o próprio TIMESTAMP não vai influenciar em nada o funcionamento do Forum.

Por favor me corrija se eu estiver errado.

Aguardo respostas ;)

Edição feita por: gennf, 16/11/2006, 11:38.

Portal BatePapoBrasil
URL: www.batepapobrasil.com

----------------------------
Site desenvolvidos
URL:
VitrineABC :: Alugue Litoral :: OrtodontiaLago

#10 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 16/11/2006, 12:07

Então já que é TIMESTAMP, você tem que usar FROM_UNIXTIME().

Exemplo:
FROM_UNIXTIME(user_regdate, '%b, %d, %Y') = 'Nov, 13, 2006'

http://dev.mysql.com...-functions.html
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#11 gennf

gennf

    A Solução está ai...

  • Usuários
  • 645 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG

Posted 16/11/2006, 17:04

Eclesiastes...

Ou eu sou muito burro ou eu não sei mesmo como é que se faz isso.

Eu tentei assim:

$sql = mysql_query("SELECT FROM_UNIXTIME(wal_users.user_regdate, '%b, %d, %Y') = 'Nov, 13, 2006'") or die(mysql_error());

E a mensagem que aparece é:

Unknown table 'wal_users' in field list


Tentei tambem assim:

$sql = mysql_query("SELECT * FROM wal_users (SELECT FROM_UNIXTIME(user_regdate, '%b, %d, %Y') = 'Nov, 13, 2006')") or die(mysql_error());

Assim:

$sql = mysql_query("SELECT * FROM wal_users FROM_UNIXTIME(user_regdate, '%b, %d, %Y') = 'Nov, 13, 2006'") or die(mysql_error());

Porque isso agora???

Você tem ideia???

Aguardo mais luzes sua.

Ta osso viu!!!

Edição feita por: gennf, 16/11/2006, 17:15.

Portal BatePapoBrasil
URL: www.batepapobrasil.com

----------------------------
Site desenvolvidos
URL:
VitrineABC :: Alugue Litoral :: OrtodontiaLago

#12 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 16/11/2006, 18:22

Ué rapaz, é para usar na cláusula WHERE. Afinal, é essa expressão que irá decidir quais registros serão obtidos.

Edição feita por: Eclesiastes, 16/11/2006, 18:23.

Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#13 Miguceamma

Miguceamma

    MiguPenjisse

  • Usuários
  • 11724 posts

Posted 25/09/2017, 07:39

Cialis Duracion Del Efecto Cialis 5 Mg Effetto Levitra Tabletten Teilen online pharmacy Keflex Drug Used For Vanuatu Pharmacy Online
Walgreens Propecia Cost Achat Viagra Pfizer France cialis Levitra Dauertherapie Trustedtablets Buy Viagra Usa Buy Priligy Germany
Lasix Netherlands cialis Medicament Cialis 5mg

#14 Miguceamma

Miguceamma

    MiguPenjisse

  • Usuários
  • 11724 posts

Posted 10/10/2017, 06:14

Prix Du Levitra 10 Mag viagra Cialis Comprar Mejor Precio
Rhine Ink buy viagra Cialis Zur Taglichen Einnahme Sachet Kamagra Usa
Mmorpg Levitra Topically Applied Keflex Acheter Cialis Prix generic cialis Cephalexin And Chlamydia Amoxicillin Clav Side Effects

#15 LarPhozyHah

LarPhozyHah

    Super Veterano

  • Usuários
  • 14515 posts
  • Sexo:Masculino
  • Localidade:San Miguel de Tucuman

Posted 10/10/2017, 08:10

Buy Priligy 30 Mg Online Acquistare Viagra Roma Viagra Canada viagra Amoxil Prendre Cialis Generique France
Viagra Levitra Cialis Online viagra Viagra Flugzeug Mitnehmen Will Propecia Work Forever Hair Loss




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq