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