Mostrando postagens com marcador mysql. Mostrar todas as postagens
Mostrando postagens com marcador mysql. Mostrar todas as postagens

quarta-feira, 5 de agosto de 2015

Escrevinhando a data em pt-br no mysql

Esta query é pra colocar o mysql em pt-br:
 SET lc_time_names = 'pt_BR';  

.. e essa outra, pra pegar a data:
 select date_format(now(), '%W, %d de %M de %Y')  

O resultado sai assim:

 quarta, 05 de agosto de 2015  

(na verdade, o resultado depende da data e hora atual, mas isso não é o importante)

terça-feira, 21 de janeiro de 2014

Exportando um ou mais registros no MySql com mysqldump

Ás vezes a gente precisa exportar só um registro de uma tabela.
Dá pra fazer assim:

 mysqldump -t -u usuario -psenha banco tabela --where=id_tabela=666 > ~/insert.sql  

Só pra lembrar: o parâmetro -p recebe a senha 'colada' nele, por exemplo, se a senha for 'estrogonofe', fica assim:

 mysqldump -t -u usuario -pestrogonofe banco tabela --where=id_tabela=666 > ~/insert.sql  

E no final, onde tem '~/insert.sql', é onde vai ser gerado o arquivo com o comando sql pra dar o insert no banco.

quinta-feira, 25 de abril de 2013

Calculando idade com Mysql e Javascript

Não com os dois ao mesmo tempo, obviamente.

Só pra lembrar: nunca defina o campo de data como DATETIME, a menos que tu precise contar quantos anos, dias, horas, minutos e segundos o vivente tem de existência. Se não for o caso, use apenas DATE.

 DATE_FORMAT(FROM_DAYS(TO_DAYS(CURDATE())-TO_DAYS(nascimento)), '%y') AS idade,  

Agora, com javascript:
 /*  
       * calcularIdade  
       * Calcula a idade baseada na data informada  
       * @param string string texto no formato d/m/Y  
       */  
      function calcularData(string){  
           var tmp = string.split('/');  
           var data = new Date(tmp[2], tmp[1], tmp[0]);  
           var hoje = new Date();  
           var idade = Math.floor((hoje-data) / (365.25 * 24 * 60 * 60 * 1000));  
           return idade;  
      }  
Fontes: ma.tt/2003/12/calculate-age-in-mysql/
http://stackoverflow.com/questions/5524743/jquery-age-calculation-on-date

terça-feira, 11 de dezembro de 2012

Select Case no Mysql

Simples:

SELECT id, nome, descricao,
CASE status
     WHEN 1 THEN 'Aprovado'
     WHEN 2 THEN 'Vencido'
     WHEN 3 THEN 'Pendente'
     WHEN 0 THEN 'Reprovado'
END AS status

FROM tabela

Fonte:http://talibamartins.wordpress.com/2007/09/20/if-e-case-no-mysql/

segunda-feira, 21 de maio de 2012

aprendi hoje que...


..tabelas do mysql aceitam nomes com até 64 caracteres.

Não sei porque eu sempre achei que era 32...

quarta-feira, 7 de março de 2012

Lista de Profissões em Mysql


Eu tinha uma lista de profissões em mysql, mas deu algum problema com o arquivo.
Então lá vai de novo, só que dessa vez em Xml:
Download


Segue também uma lista de modelos de automóveis, da tabela da Fipe, também em xml:
Download

quinta-feira, 15 de dezembro de 2011

Algumas funções do MySQL


Contar registros duplicados:


SELECT id_cliente, count(id_cliente) 
FROM  clientes 
GROUP BY id_cliente 
HAVING count( id_cliente) > 1


Mostrar conexões ativas:
SHOW PROCESSLIST;


Gerar sql para otimizar várias tabelas:
SELECT CONCAT('OPTIMIZE TABLE ',TABLE_NAME,'; ')AS tabela from information_schema.TABLES WHERE TABLE_SCHEMA = 'nome_do_bd’


Gerar sql para truncar várias tabelas:
SELECT concat('TRUNCATE ',TABLE_NAME,' ;') FROM information_schema.`TABLES` T WHERE TABLE_SCHEMA = 'nome_da_base'

Comando find_in_set, para quando precisar procurar um registro em uma lista de valores (similar ao IN(), mas passando uma string já formatada com as virgulas):

select id_cliente, Find_In_Set(id_cliente, '172,171,182,183') FROM clientes

Contar horas entre datas:
SELECT TIMEDIFF(STR_TO_DATE('19/01/2011 00:00:00', '%d/%m/%Y %H:%i:%s'),now());


Insert-update: 

REPLACE INTO acesso (login, ip, data_ultimo_acesso )VALUES ('login','192.168.0.1', now());


quarta-feira, 3 de agosto de 2011

Contar dias ou horas entre datas em Mysql


Para contar quantas horas existem entre duas datas:

SELECT TIMEDIFF(STR_TO_DATE('19/01/1985 00:00:00', '%d/%m/%Y %H:%i:%s'),now());

Trocando TIMEDIFF por 'DATEDIFF' dá pra contar quantos dias tem entre essas datas.


sexta-feira, 8 de julho de 2011

Script para limpar várias tabelas em Mysql


(Vou tentar tornar isso aqui um pouco mais útil)

Bom, ás vezes a gente precisa, por qualquer motivo que seja, dar um truncate table em vária tabelas de uma vez só. Talvez exista um jeito menos improvisado de se fazer, mas esse é o jeito que achei.

A primeira coisa é rodar essa consulta, que vai retornar todos os nomes das tabelas de determinado banco, concatenando com o texto 'TRUNCATE TABLE'.


SELECT concat('TRUNCATE ',TABLE_NAME,' ;') FROM information_schema.`TABLES` T WHERE TABLE_SCHEMA = 'nomedabase';



O retorno disso vai ser algo assim:


'TRUNCATE tabela1 ;'
'TRUNCATE tabela2 ;'
'TRUNCATE tabela3 ;'


Depois disso, é só tirar as aspas e executar.