Gestion des dates avec SQL

Aujourd’hui en SQL


SELECT CURRENT DATE FROM SYSIBM/SYSDUMMY1 Ou SELECT CURDATE() FROM SYSIBM/SYSDUMMY1

Aujourd’hui en SQL, au format YYYYMMDD


SELECT
YEAR(CURRENT DATE) * 10000 +
MONTH(CURRENT DATE) * 100 +
DAY(CURRENT DATE )
FROM SYSIBM/SYSDUMMY1

Hier, demain, la semaine prochaine en SQL


SELECT DATE(DAYS(CURRENT DATE)-1) FROM SYSIBM/SYSDUMMY1


SELECT DATE(DAYS(CURRENT DATE)+1) FROM SYSIBM/SYSDUMMY1


SELECT DATE(DAYS(CURRENT DATE)+7) FROM SYSIBM/SYSDUMMY1

Convertir une date SSAAMMJJ en JJMMSSAA en SQL


Decimal(substring(digits(WDATE), 7, 2)
CONCAT substring(digits(WDATE), 5, 2 )
CONCAT substring(digits(WDATE), 1, 4 ),8 , 0)

Le numéro du jour pour une date donnée

SELECT
DAY(CURRENT DATE)
FROM SYSIBM/SYSDUMMY1

Le numéro du mois pour une date donnée

SELECT MONTH(‘2005-12-21’)
FROM SYSIBM/SYSDUMMY1

Le libellé du mois pour une date donnée

SELECT
CASE MONTH(CURRENT DATE)
WHEN 1 THEN ‘Janvier’
WHEN 2 THEN ‘Février’
WHEN 3 THEN ‘Mars’
WHEN 4 THEN ‘Avril’
WHEN 5 THEN ‘Mai’
WHEN 6 THEN ‘Juin’
WHEN 7 THEN ‘Juillet’
WHEN 8 THEN ‘Août’
WHEN 9 THEN ‘Septembre’
WHEN 10 THEN ‘Octobre’
WHEN 11 THEN ‘Novembre’
ELSE ‘Décembre’
END
FROM SYSIBM/SYSDUMMY1

Le libellé du mois pour une date donnée Depuis la V5R3

SELECT
MONTHNAME(CURRENT DATE)
FROM SYSIBM/SYSDUMMY1

Le numéro du jour de la semaine pour une date donnée, le lundi étant considéré comme le premier jour de la semaine

SELECT
DAYOFWEEK_ISO(CURRENT DATE)
FROM SYSIBM/SYSDUMMY1

Le numéro du jour de la semaine pour une date donnée, le dimanche étant considéré comme le premier jour de la semaine

SELECT
DAYOFWEEK(CURRENT DATE)
FROM SYSIBM/SYSDUMMY1

Le libellé du jour de la semaine pour une date donnée, en considérant le lundi comme le premier jour de la semaine

SELECT
CASE dayofweek_iso(current date)
WHEN 1 THEN ‘Lundi’
WHEN 2 THEN ‘Mardi’
WHEN 3 THEN ‘Mercredi’
WHEN 4 THEN ‘Jeudi’
WHEN 5 THEN ‘Vendredi’
WHEN 6 THEN ‘Samedi’
ELSE ‘Dimanche’
END
FROM sysibm/sysdummy1

Le libellé du jour de la semaine pour une date donnée, en considérant le dimanche comme le premier jour de la semaine

SELECT
CASE dayofweek(current date)
WHEN 1 THEN ‘Dimanche’
WHEN 2 THEN ‘Lundi’
WHEN 3 THEN ‘Mardi’
WHEN 4 THEN ‘Mercredi’
WHEN 5 THEN ‘Jeudi’
WHEN 6 THEN ‘Vendredi’
ELSE ‘Samedi’
END
FROM sysibm/sysdummy1

Le libellé du jour de la semaine pour une date donnée Depuis la V5R3

SELECT
DAYNAME(CURRENT DATE)
FROM SYSIBM/SYSDUMMY1

Obtenir le quantième pour une date donnée

SELECT
DAYOFYEAR(CURRENT DATE)
FROM SYSIBM/SYSDUMMY1

Ajouter à  une date des jours, mois ou année pour en calculer une autre

Par exemple, quelle est la date du jour + 2 ans + 3 mois + 5 jours :

SELECT
CURRENT DATE + 2 YEARs + 3 MONTHS + 5 DAYS
FROM SYSIBM/SYSDUMMY1

Nombre de jours depuis le 1er janvier de l’an 1

Par exemple la requête suivante donne 1 :

SELECT
DAYS(‘0001-01-01’)
FROM SYSIBM/SYSDUMMY1

Par exemple la requête suivante donne 732302 :

SELECT
DAYS(‘2005-12-22’)
FROM SYSIBM/SYSDUMMY1

Calculer le nombre de jours calendaires entre deux dates

Par exemple la requête suivante donne 45 jours :

SELECT
DAYS(‘2005-12-22’) – DAYS(‘2005-11-07’)
FROM SYSIBM/SYSDUMMY1

Calculer le numéro de la semaine pour une date donnée

Par exemple la requête suivante donne la semaine 50 :

SELECT
DAYOFYEAR(‘2005-12-22’) / 7
FROM SYSIBM/SYSDUMMY1

Utiliser les fonctions dates sur une date stockée au format numérique 8,0

En passant la date au format 8,0 en caractère avec séparateur.

Par exemple la requête suivante extrait le numéro de semaine pour chaque date ‘DATE1’ :

SELECT
DAYOFYEAR(
SUBSTRING(CHAR(DATE1), 1, 4) CONCAT ‘-‘ CONCAT
SUBSTRING(CHAR(DATE1), 5, 2) CONCAT ‘-‘ CONCAT
SUBSTRING(CHAR(DATE1), 7, 2)
) / 7
FROM TABLE1

Calculer le numéro de trimestre d’une date donnée

QUARTER, convertit une date, un timestamp en une valeure entière représentant le trimestre de l’année concernée par la date :

 1 pour 1er trimestre

 2 pour 2nd trimestre

 3 pour 3ème trimestre

 4 pour 4ème trimestre


SELECT QUARTER('2007-04-11-11.59.20.918664')
FROM SYSIBM/SYSDUMMY1

Donne comme résultat : 2


SELECT QUARTER
(DATE('2007-04-11-11.59.20.918664') + 4 MONTHS)
FROM SYSIBM/SYSDUMMY1

Donne comme résultat : 3


SELECT quarter(CURRENT DATE) FROM SYSIBM/SYSDUMMY1

Donne comme résultat : 1 pour une date au 19/01/2007

Print Friendly, PDF & Email