> Tech > Analyser les données d’après le jour de la semaine

Analyser les données d’après le jour de la semaine

Tech - Par Renaud ROSSET - Publié le 20 février 2012
email


Pour de nombreuses applications, il est très important de pouvoir analyser les données d'après le jour de la semaine. Y a-t-il plus de ventes un lundi qu'un mardi ? Il ne suffit pas toujours de montrer la date. Il faut aussi montrer le jour de la semaine

en format caractères pour voir et analyser les tendances. Ce SQL montre le nombre de ventes d’après le jour de la semaine, en utilisant la BIF dayofweek(), pour toutes les lignes de notre table. Le résultat se trouve dans la figure 3.

S’il faut montrer le jour de la semaine dans vos résultats SQL, vous pouvez utiliser la BIF DAYNAME(). Son utilisation et un exemple du résultat se trouvent dans la figure 4.

Astuces de SQL avec différents formats

Ce serait merveilleux si toutes les tables (ou plutôt fichiers) SQL sur notre serveur i5 avaient des formats de date natifs. Peut-être avez-vous la chance de traiter des dates stockées dans une variété de formats numériques et caractères provenant d’anciens systèmes de fichiers. Mais la plupart d’entre nous sommes confrontés à un mélange de vrais champs date et de données de date ancien style stockées dans des champs numériques et caractères. Pas de problème : vous pouvez quand même utiliser les BIF date de SQL, à la seule condition de leur donner d’abord un format date.

Il n’est pas rare de trouver des dates stockées en format numérique série. Avant les champs de date natifs, il n’était pas facile d’effectuer des calculs avec un nombre stocké en format mmjjaa (comme 050302). Mais ces calculs étaient possibles si la date était stockée dans un format série comportant une date de référence de base. Par exemple, si le nombre 1 représentait 1/1/1980, alors le nombre 2 était 1/2/1980, et ainsi de suite. Avec de tels nombres, il était facile d’ajouter et de soustraire des jours. Ce n’était pas très élégant, mais ça marchait.

À condition de connaître le nombre de base, vous pouvez convertir un nombre série en une date. Par exemple, Select date(722815) renvoie 1980/01/01. En utilisant cet exemple, si vous avez un champ numérique appelé SrlDate—où 1 est 1/1/1980, 2 est 1/2/1980, etc.—ce SQL renverra un type de date valide :

Select date(SrlDate + 722814) from MyFile

D’autres champs numériques et caractères contiennent des données de date dans des formats tels que mmjjaa, un champ numérique ou caractère de longueur six ; aaaammjj, un champ numérique ou caractère de longueur huit ; ou des champs séparés pour l’année (deux ou quatre chiffres), le mois et le jour.

Nous allons voir un exemple qui plante le décor pour toute date numérique ou caractère que vous devez transformer en un type de date en SQL. Cet exemple a des champs séparés pour l’année (quatre chiffres), le mois et le jour. La BIF SQL Digits() est utilisée, avec la concaténation || pour créer une chaîne de caractères. Cette instruction SQL renvoie une date à partir de ces entrées :

select
date(digits(ordyear) || ‘-‘ || digits(ordmonth) || ‘-‘ || digits(ordday))
from MyFile

Les deux derniers exemples démontrent bien que la BIF SQL date() et est assez intelligente pour savoir si une valeur numérique est passée (quand j’ai utilisé un nombre représentant une date série) et si une valeur caractère est passée dans le format aaaammjj.

Téléchargez cette ressource

Guide inmac wstore pour l’équipement IT de l’entreprise

Guide inmac wstore pour l’équipement IT de l’entreprise

Découvrez toutes nos actualités à travers des interviews, avis, conseils d'experts, témoignages clients, ainsi que les dernières tendances et solutions IT autour de nos 4 univers produits : Poste de travail, Affichage et Collaboration, Impression et Infrastructure.

Tech - Par Renaud ROSSET - Publié le 20 février 2012