Prendre deux valeurs extrêmes en MySQL
Résolu
JBB92
Messages postés
29
Date d'inscription
Statut
Membre
Dernière intervention
-
JBB92 Messages postés 29 Date d'inscription Statut Membre Dernière intervention -
JBB92 Messages postés 29 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Prendre deux valeurs extrêmes en MySQL
- Deux ecran pc - Guide
- Comment faire deux colonnes sur word - Guide
- Prendre photo avec webcam - Guide
- Nombre de jours entre deux dates excel - Guide
- Prendre une photo avec son mac - Guide
7 réponses
tu concatènes tous les chiffres de ta date (si il y a bien séparation par des tirets) et après tu transformes ta zone en numérique puis tu sélectionnes le MAX et le MIN de la zone
ca doit etre dans le style SELECT MIN(NUMERIC(CONCAT(CONCAT(SUBSTR(zone, 1, 4), SUBSTR(zone, 6, 2)), SUBSTR(9,2)))....
Ca doit être à peu près cela et tu fais la même avec la fonction MAX
ca doit etre dans le style SELECT MIN(NUMERIC(CONCAT(CONCAT(SUBSTR(zone, 1, 4), SUBSTR(zone, 6, 2)), SUBSTR(9,2)))....
Ca doit être à peu près cela et tu fais la même avec la fonction MAX
Bonjour,
Je ne comprend pas en quoi les deux valeurs de l'exemple sont des extrêmes... Sur quels critères ???
Je ne comprend pas en quoi les deux valeurs de l'exemple sont des extrêmes... Sur quels critères ???
Tu peux faire comme ça :
(
SELECT *
FROM `Database`
ORDER BY Date ASC
LIMIT 1
)
UNION (
SELECT *
FROM `Database`
ORDER BY Date DESC
LIMIT 1
)
Ça donne 'Donnee 1' et 'Donnee 3' qui sont pour moi les extrêmes (en terme de dates).
(
SELECT *
FROM `Database`
ORDER BY Date ASC
LIMIT 1
)
UNION (
SELECT *
FROM `Database`
ORDER BY Date DESC
LIMIT 1
)
Ça donne 'Donnee 1' et 'Donnee 3' qui sont pour moi les extrêmes (en terme de dates).
attention la méthode de droopy est bonne mais pas dans ce cas la (vrai quand la date est de type SSAA-MM-JJ) mais dans ce cas il peut y avoir un problème avec le 31 janvier 2008 qui sera plus grand que le 07 décembre 2008.
Si le champs est de type date, Mysql les stocke sous forme d'entiers
(nombre de secondes depuis le 01-01-1970),
donc quelque soit l'affichage qu'il en fait (format américain dans ce cas),
l'ordre des dates doit rester correct.
C'est pour ça qu'il faudrait un peu plus d'explications (description des champs).
(nombre de secondes depuis le 01-01-1970),
donc quelque soit l'affichage qu'il en fait (format américain dans ce cas),
l'ordre des dates doit rester correct.
C'est pour ça qu'il faudrait un peu plus d'explications (description des champs).
Je corrige ce que j'ai dit, Mysql stocke bien ses dates sous forme d'entier, mais c'est pas le nombre de secondes... :
Toujours provenant du manuel officiel :
DATE: A three-byte integer packed as DD + MM×32 + YYYY×16×32
TIME: A three-byte integer packed as DD×24×3600 + HH×3600 + MM×60 + SS
Là je traduis pas, c'est des maths ;-)
Toujours provenant du manuel officiel :
DATE: A three-byte integer packed as DD + MM×32 + YYYY×16×32
TIME: A three-byte integer packed as DD×24×3600 + HH×3600 + MM×60 + SS
Là je traduis pas, c'est des maths ;-)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
C'est sur, j'ai pris en postulat que c'était juste de l'alphanumérique (comme on trouve souvent dans le domaine bancaire)
Enfin maintenant avec la méthode de Droopy, il lui suffit de mettre au format date son champ au pire (si possible bien sur)
Enfin maintenant avec la méthode de Droopy, il lui suffit de mettre au format date son champ au pire (si possible bien sur)
Je pense que pour gérer les date, il faut un champs date, ça facilite grandement la vie,
car tous les traitements de tri, et de modification de date (passer au jour/mois suivant)
sont tous gérés par MySQL en interne, ce qui est très pratique.
Par contre, : (source Mysql Manuel)
Although MySQL tries to interpret values in several formats, dates always must be given in year-month-day order (for example, '98-09-04'), rather than in the month-day-year or day-month-year orders commonly used elsewhere (for example, '09-04-98', '04-09-98').
En gros, il faut que tu convertisses toi même les dates du format américain (Année-Jour-Mois) vers le format ISO (Année-Mois-Jour), Mysql essaie de le faire automatiquement, mais je peux te garantir que dans ton cas, il y arrivera
pas : Est-ce que 2008-02-03 est le 2 mars 2008 ou le 3 février 2008 ???
car tous les traitements de tri, et de modification de date (passer au jour/mois suivant)
sont tous gérés par MySQL en interne, ce qui est très pratique.
Par contre, : (source Mysql Manuel)
Although MySQL tries to interpret values in several formats, dates always must be given in year-month-day order (for example, '98-09-04'), rather than in the month-day-year or day-month-year orders commonly used elsewhere (for example, '09-04-98', '04-09-98').
En gros, il faut que tu convertisses toi même les dates du format américain (Année-Jour-Mois) vers le format ISO (Année-Mois-Jour), Mysql essaie de le faire automatiquement, mais je peux te garantir que dans ton cas, il y arrivera
pas : Est-ce que 2008-02-03 est le 2 mars 2008 ou le 3 février 2008 ???
Oui ce sont des champs "date".
Question subsidiaire avec la méthode de droopy est-ce que ça marche si les dates sont au format français ? I'm so happy ;-)
Question subsidiaire avec la méthode de droopy est-ce que ça marche si les dates sont au format français ? I'm so happy ;-)