Jump to content
gersonab

Ordenar pelo dia

Recommended Posts

Bom dia, tenho um select onde gostaria de ordenar o mesmo pelo dia do campo date , segue o mesmo 

$mesatual = date("m");
$consulta = $pdo->query("SELECT * FROM cli WHERE MONTH(datan) = '$mesatual' ORDER BY DAY(datan) ASC");

não esta ordenando o mesmo, teria de ser pelo dia, pois o mês vai ser sempre o atual e o ano varia conforme data de nascimento.

 

exemplo de como esta aparecendo :
18/07/2019
14/07/2019

preciso que seja assim :
14/07/2019
18/07/2019

Share this post


Link to post
Share on other sites

Vamos lá!

 

1º - Para que o primeiro método funcione,

o tipo do campo datan deverá estar como

DATE... Segue exemplo:

 

SQL A SER UTILIZADA

CREATE TABLE cli (
	id INT NOT NULL AUTO_INCREMENT,
	datan DATE NOT NULL,
	PRIMARY KEY(id)
);

INSERT INTO cli (datan) VALUES
('2019-07-18'),
('2019-07-12'),
('2019-07-11'),
('2019-07-16'),
('2019-07-30'),
('2019-07-21');

 

QUERY

SELECT
	*
FROM
	cli
WHERE
	MONTH(datan) = '07'
ORDER BY
	DAY(datan) ASC

 

QUERY + PHP

$consulta = $pdo->query("SELECT * FROM cli WHERE MONTH(datan) = '$mesatual' ORDER BY DAY(datan) ASC");

 

RESULTADO

image.png.2d13dd95cc60f7f02c39c5ffa2c3d31d.png

 

 

2º - Para que o segundo método funcione,

os dados do campo deverão estar setados

no formato d/m/Y. Segue exemplo:

 

SQL A SER UTILIZADA

CREATE TABLE cli2 (
	id INT NOT NULL AUTO_INCREMENT,
	datan CHAR(10) NOT NULL,
	PRIMARY KEY(id)
);

INSERT INTO cli2 (datan) VALUES
('18/07/2019'),
('12/07/2019'),
('11/07/2019'),
('16/07/2019'),
('30/07/2019'),
('21/07/2019');

 

QUERY

SELECT
	*
FROM
	cli2
WHERE
	MONTH(
		DATE_FORMAT(STR_TO_DATE(datan, '%d/%m/%Y'), '%Y-%m-%d') 
	) = '07'
ORDER BY
	DAY(
		DATE_FORMAT(STR_TO_DATE(datan, '%d/%m/%Y'), '%Y-%m-%d') 
	) ASC

 

QUERY + PHP

$consulta = $pdo->query("SELECT * FROM cli2 WHERE MONTH(DATE_FORMAT(STR_TO_DATE(datan, '%d/%m/%Y'), '%Y-%m-%d')) = '$mesatual' ORDER BY DAY(DATE_FORMAT(STR_TO_DATE(datan, '%d/%m/%Y'), '%Y-%m-%d')) ASC");

 

RESULTADO

image.png.2aab3708464e1a2fbaba3cfba3117db9.png

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Salvatore
      Então, eu estou gravando uns dados no bancos de dados usando text area, mas quando eu dou espaço ou algo do tipo fica assim
       
      Ex :aaaa\r\naaaaaa\r\n
       
      onde esses \r\n são espaços e outras coisas, e ficam sendo exibidos quando eles retorna para a pagina
      alguém sabe como resolvo isso?
    • By drx
      Olá pessoal!
      Estou com um probleminha aqui. Estou me embrenhando pelos ajax e jquery. Muito interessante. 
      Eu peguei um exemplo e é bem simples. Só que não retorna a mensagem para a div.
       
      Eu tenho uma div em pagina1.php onde o usuário entra com um número identificador em um campo textfield.
      Após entrar com o número identificador, solicito a verificação em uma outra página.php onde tenho uma consulta no mysql.
      O echo da consulta é: Existente ou Inexistente. A consulta é feita pelo número identificador. Fiz a verificação e retorna perfeitamente,
      Porém eu quero que ao verificar, a mensagem retorne para minha outra div logo abaixo na pagina1.php
      Vou passar o código para facilitar....
       
      <html>
      <head>
       
      <script src="js/jquery.js"></script>
      <script>
      $(function(){
        $('#form').submit(function(){
           $.ajax({
             url: 'x_consultar_patro.php',
             type: 'POST',
             data: $('#form').serialize(),
             success:function ( data ) {
                 if (data != '') {
                     $('#frm_cadastro').html( data );
                 }
               }
             });
           return false;
         });
      });
      </script>
       
      </head>
       
      <body>

      <div id="frm_cadastro"></div>

      <form id="form" method="post" action="">
        <input type="text" name="codpatro" id="codpatro"/>
        <input type="submit" name="btn_procurar" id="btn_procurar" value="Procurar"/>
      </form>
       
      </body>
      <html>
       
       

    • By kelvinferraz
      Boa tarde Pessoal tudo bem?
       
      Estou criando uma aplicação basica para um usuario logar e acessar os dados dessa aplicação via um dashboard. 
       
      Surgiu uma dúvida, eu gostaria de publicar isso para que qualquer usuario possa acessar via web por exemplo: www.meusite.com/login
       
      A partir desse login defeniria qual base de dados esse usuário esta vinculado, por exemplo:
       
      O usuário acessa a area de login do site:
      Login: UsuarioX ------> Conecta ao db_usuariox
       
      Login:UsuarioY -------> Conecta ao db_usuarioy
       
      Como posso fazer isso?
       
      Estou aprendendo mais afundo PHP agora, então se puderem me dar uma dica e uma forma simples para entendimento ficarei grato.
    • By Juan Barcelos
      Galera bom dia !
      Estou desenvolvendo um projeto no qual o usuario ao fazer o 1º login tem que criar um personagem e depois seguir ao menu do sistema.
      Ao efetuar o 2º Login se o usuario já possuir um personagem pode seguir direto para o menu do sistema caso contrario vai para a criação do personagem.
      Eu nao estou conseguindo relaziar esta condição estou utilizando baco de dados mysql(PHPMyadmin) ja tentei de varias formas alguem poderia me ajudar.
       
    • By Luckshor
      Olá pessoal, tudo bem?
       
      Sou iniciante no MySQL, essa semana veio uma dúvida de 10 milhões de dólares.
       
      O Chefinho querido me entregou uma planilha excel com 554 mil registros e me pediu para inserir isso na tabela para fazer levantamento de algumas informações.
      Aiiii me vêm aquele dúvida...
       
      Fazer 554 mil INSERT INTO (') ???
       
      INSERT INTO `tab_teste_cliente` (`id_cliente`, `cnpj`, `razao_social`) VALUES ('NULL,'12345678901234','Empresa Linda');

      Massssss... quando eu exporto uma tabela no MySQL, ele faz aqueles inserts com 200 valores.
      Isso torna o INSERT mais rápido é melhor certo?

      Então há alguma forma de converter o Excel para um arquivo SQL com esses Inserts múltiplos e facilitar minha vida?  
      Algum site, script, gambiarra, subterfúgio técnico ou contato divino para fazer isso?
       
       
      Obrigado, pela ajuda pessoal até mais!
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.