SQL - Buscando consejos

 
Vista:
sin imagen de perfil
Val: 7
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Buscando consejos

Publicado por Fabricio (2 intervenciones) el 22/09/2019 00:02:58
Muy buenas tardes, Tengo una tabla y quiero separar los resultados por fecha, el mayor problema lo tengo en la del 2019 porque va separada en dos que son Novedades y Actuales, las novedades son las de este mes (septiembre) y las actuales las de los meses anteriores (enero a agosto)
en la columna 'decada' están los años 1980 1990 2000 2010 2019 y en la columna uploadDate las fecha de subida año-mes-dia

Lo que e hecho funciona pero soy muy nuevo con tablas y querría optimizar para aprender un poco mas y talvez pueda acortar el código php

Esta es la forma en la que consigo los resultados...

1
2
3
4
5
6
7
2019 <--- Novedad
                  $mes = date('m');
    este mes    = SELECT * FROM noticias WHERE WHERE decada = '2019' AND MONTH(uploadDate) = $mes ORDER BY uploadDate DESC;
 
2019 <---- Actual
                  $fecha = "2019-$mes-30";
 resto del año  = SELECT * FROM noticias WHERE decada = '2019' AND uploadDate <= date_sub('$fecha', interval 1 month) ORDER BY uploadDate DESC;

Para mostrar en la pagina el formato dia-mes-año lo hice de esta manera

1
2
3
$d = $columna['uploadDate'];
$uploadDate = strftime("%d-%m-%Y", strtotime($d));
echo " $uploadDate ";

Y se que se puede lograr con DATEFORMAT pero no logro hacerlo funcionar

Desde ya muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 73
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Buscando consejos

Publicado por joel (26 intervenciones) el 22/09/2019 08:58:46
La manera que yo utilizo es con date()...

1
date("%d-%m-%Y", strtotime($d));

Te sirve?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 7
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Buscando consejos

Publicado por Fabricio (2 intervenciones) el 22/09/2019 19:00:20
Claro joel, me funciono para optimizar un poco mas mi código y lo utilice hasta que encontré la forma de hacerlo con SQL y DATE_FORMAT...
La verdad que hay mucha información para usar DATE_FORMAT pero poca para integrarlo a una cadena de consultas ....
Mi código era...

1
2
$mes = date('m');
 SELECT * FROM noticias  WHERE decada = '2019' AND MONTH(uploadDate) = $mes ORDER BY uploadDate DESC;

Pude suprimir la variable $mes por MONTH(CURDATE()) que da el mes actual y en decada use YEAR(CURDATE()) y me quedo
1
SELECT * FROM noticias WHERE decada = YEAR(CURDATE()) AND MONTH(uploadDate) = MONTH(CURDATE()) ORDER BY uploadDate DESC;"


Luego de intentar muchas horas logre cambiarle el formato a dia-mes-año y quedo así...
1
SELECT DATE_FORMAT(uploadDate, '%d-%m-%Y') as upload, estilo, hash, title, uploadDate FROM noticias WHERE decada = YEAR(CURDATE()) AND MONTH(uploadDate) = MONTH(CURDATE()) ORDER BY uploadDate DESC;"
El valor me queda con el nombre upload, seria como crear una variable en PHP como $upload = date("%d-%m-%Y", strtotime($d));

Según lo que leí y pude poner en practica que cuando usamos DATE_FORMAT debemos incluir seguidamente las columnas que vamos a usar en mi caso estilo, hash, title, uploadDate antes de FROM me gustaría que alguien pueda corroborar si estoy equivocado, llevo tres días usando base de datos y estoy intentando aprender con ejemplos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar