Table des matières

Search

  1. Préface
  2. Le langage de transformation
  3. Constantes
  4. Opérateurs
  5. Variables
  6. Dates
  7. Fonctions

Référence du langage de transformation

Référence du langage de transformation

ROUND (Dates)

ROUND (Dates)

Arrondit une partie d'une date. Vous pouvez également utiliser ROUND pour arrondir des nombres.
Cette fonction permet d'arrondir les parties d'une date :
Année
Arrondit la partie année d'une date en fonction du mois.
Mois
Arrondit la partie mois d'une date en fonction du jour du mois.
Jour
Arrondit la partie jour de la date en fonction de l'heure.
Heure
Arrondit la partie heure de la date en fonction des minutes de l'heure.
Minute
Arrondit la partie minute de la date en fonction des secondes.
Seconde
Arrondit la deuxième partie de la date en fonction des millisecondes.
Milliseconde
Arrondit la partie milliseconde de la date en fonction des microsecondes.
Microseconde
Arrondit la partie microseconde de la date en fonction des nanosecondes.
Le tableau suivant indique les conditions utilisées par l'expression ROUND et les valeurs de retour :
Condition
Expression
Valeur de retour
Pour les mois compris entre janvier et juin, la fonction renvoie 1er janvier de la même année et définit l'heure sur 00:00:00.000000000.
ROUND(TO_DATE('04/16/1998 8:24:19','MM/DD/YYYY HH24:MI:SS'),'YY')
01/01/1998 00:00:00.000000000
Pour les mois compris entre juillet et décembre, la fonction renvoie 1er janvier de l'année suivante et définit l'heure sur 00:00:00.000000000.
ROUND(TO_DATE('07/30/1998 2:30:55','MM/DD/YYYY HH24:MI:SS'),'YY')
01/01/1999 00:00:00.000000000
Pour les jours du mois compris entre le 1er et le 15, la fonction renvoie la date du premier jour du mois entré et définit l'heure sur 00:00:00.000000000.
ROUND(TO_DATE('04/15/1998 8:24:19','MM/DD/YYYY HH24:MI:SS'),'MM')
04/01/1998 00:00:00.000000000
Pour les jours du mois compris entre le 16 et le dernier jour du mois, la fonction renvoie le premier jour du mois suivant et définit l'heure sur 00:00:00.000000000.
ROUND(TO_DATE('05/22/1998 10:15:29','MM/DD/YYYY HH24:MI:SS'),'MM')
06/01/1998 00:00:00.000000000
Pour une heure comprise entre 00:00:00 (minuit) et 11:59:59, la fonction renvoie la date en cours et définit l'heure sur 00:00:00.000000000 (minuit).
ROUND(TO_DATE('06/13/1998 2:30:45','MM/DD/YYYY HH24:MI:SS'),'DD')
06/13/1998 00:00:00.000000000
Pour une heure égale ou ultérieure à 12:00:00 (midi), la fonction arrondit la date au jour suivant et définit l'heure sur 00:00:00.000000000 (minuit).
ROUND(TO_DATE('06/13/1998 22:30:45','MM/DD/YYYY HH24:MI:SS'),'DD')
06/14/1998 00:00:00.000000000
Pour la partie des minutes comprises entre 0 et 29 minutes dans l'heure, la fonction renvoie l'heure en cours et définit les minutes, les secondes, les millisecondes et les nanosecondes sur 0.
ROUND(TO_DATE('04/01/1998 11:29:35','MM/DD/YYYY HH24:MI:SS'),'HH')
04/01/1998 11:00:00.000000000
Pour la partie des minutes à partir de 30, la fonction renvoie l'heure suivante et définit les minutes, les secondes, les millisecondes et les nanosecondes sur 0.
ROUND(TO_DATE('04/01/1998 13:39:00','MM/DD/YYYY HH24:MI:SS'),'HH')
04/01/1998 14:00:00.000000000
Pour la partie de l'heure comprise entre 0 et 29 secondes, la fonction renvoie la minute en cours et définit les secondes, les millisecondes et les nanosecondes sur 0.
ROUND(TO_DATE('05/22/1998 10:15:29','MM/DD/YYYY HH24:MI:SS'),'MI')
05/22/1998 10:15:00.000000000
Pour la partie de l'heure comprise entre 30 et 59 secondes, la fonction renvoie la minute suivante et définit les secondes, les millisecondes et les nanosecondes sur 0.
ROUND(TO_DATE('05/22/1998 10:15:30','MM/DD/YYYY HH24:MI:SS'),'MI')
05/22/1998 10:16:00.000000000
Pour la partie de l'heure comprise entre 0 et 499 millisecondes, la fonction renvoie la seconde en cours et définit les millisecondes sur 0.
ROUND(TO_DATE('05/22/1998 10:15:29.499','MM/DD/YYYY HH24:MI:SS.MS'),'SS')
05/22/1998 10:15:29.000000000
Pour la partie de l'heure comprise entre 500 et 999 millisecondes, la fonction renvoie la seconde suivante et définit les millisecondes sur 0.
ROUND(TO_DATE('05/22/1998 10:15:29.500','MM/DD/YYYY HH24:MI:SS.MS'),'SS')
05/22/1998 10:15:30.000000000
Pour l'heure comprise entre 0 et 499 microsecondes, la fonction renvoie la milliseconde en cours et définit les microsecondes sur 0.
ROUND(TO_DATE('05/22/1998 10:15:29.498125','MM/DD/YYYY HH24:MI:SS.US'),'MS')
05/22/1998 10:15:29.498000000
Pour l'heure comprise entre 500 et 999 microsecondes, la fonction renvoie la milliseconde suivante et définit les microsecondes sur 0.
ROUND(TO_DATE('05/22/1998 10:15:29.498785','MM/DD/YYYY HH24:MI:SS.US'),'MS')
05/22/1998 10:15:29.499000000
Pour la partie de l'heure comprise entre 0 et 499 nanosecondes, la fonction renvoie la microseconde en cours et définit les nanosecondes sur 0.
ROUND(TO_DATE('05/22/1998 10:15:29.498125345','MM/DD/YYYY HH24:MI:SS.NS'),'US')
05/22/1998 10:15:29.498125000
Pour la partie de l'heure comprise entre 500 et 999 nanosecondes, la fonction renvoie la microseconde suivante et définit les nanosecondes sur 0.
ROUND(TO_DATE('05/22/1998 10:15:29.498125876','MM/DD/YYYY HH24:MI:SS.NS'),'US')
05/22/1998 10:15:29.498126000

Syntaxe

ROUND(
date
[,
format
] )
Le tableau suivant décrit les arguments de cette commande:
Argument
Obligatoire/
Facultatif
Description
date
Requis
Type de données Date/Heure. Vous pouvez imbriquer TO_DATE pour convertir les chaînes en dates avant d'effectuer l'arrondi.
format
Facultatif
Entrez une chaîne de format valide. Il s'agit de la partie de la date à arrondir. Seule une partie de la date peut être arrondie. Si vous omettez la chaîne de format, la fonction arrondit la date au jour le plus proche.

Valeur de retour

Date avec la partie spécifiée arrondie. ROUND renvoie une date au même format que la date source. Vous pouvez lier les résultats de cette fonction à un port dont le type de données est Date/Heure.
NULL si vous transmettez une valeur nulle à la fonction.

Exemples

Les expressions suivantes permettent d'arrondir la partie année des dates dans le port DATE_SHIPPED :
ROUND( DATE_SHIPPED, 'Y' ) ROUND( DATE_SHIPPED, 'YY' ) ROUND( DATE_SHIPPED, 'YYY' ) ROUND( DATE_SHIPPED, 'YYYY' )
DATE_SHIPPED
RETURN VALUE
Jan 15 1998 2:10:30AM
Jan 1 1998 12:00:00.000000000AM
Apr 19 1998 1:31:20PM
Jan 1 1998 12:00:00.000000000AM
Dec 20 1998 3:29:55PM
Jan 1 1999 12:00:00.000000000AM
NULL
NULL
Les expressions suivantes permettent d'arrondir la partie mois de chaque date dans le port DATE_SHIPPED :
ROUND( DATE_SHIPPED, 'MM' ) ROUND( DATE_SHIPPED, 'MON' ) ROUND( DATE_SHIPPED, 'MONTH' )
DATE_SHIPPED
RETURN VALUE
Jan 15 1998 2:10:30AM
Jan 1 1998 12:00:00.000000000AM
Apr 19 1998 1:31:20PM
May 1 1998 12:00:00.000000000AM
Dec 20 1998 3:29:55PM
Jan 1 1999 12:00:00.000000000AM
NULL
NULL
Les expressions suivantes permettent d'arrondir la partie jour de chaque date dans le port DATE_SHIPPED :
ROUND( DATE_SHIPPED, 'D' ) ROUND( DATE_SHIPPED, 'DD' ) ROUND( DATE_SHIPPED, 'DDD' ) ROUND( DATE_SHIPPED, 'DY' ) ROUND( DATE_SHIPPED, 'DAY' )
DATE_SHIPPED
RETURN VALUE
Jan 15 1998 2:10:30AM
Jan 15 1998 12:00:00.000000000AM
Apr 19 1998 1:31:20PM
Apr 20 1998 12:00:00.000000000AM
Dec 20 1998 3:29:55PM
Dec 21 1998 12:00:00.000000000AM
Dec 31 1998 11:59:59PM
Jan 1 1999 12:00:00.000000000AM
NULL
NULL
Les expressions permettent d'arrondir la partie heure de chaque date dans le port DATE_SHIPPED :
ROUND( DATE_SHIPPED, 'HH' ) ROUND( DATE_SHIPPED, 'HH12' ) ROUND( DATE_SHIPPED, 'HH24' )
DATE_SHIPPED
RETURN VALUE
Jan 15 1998 2:10:31AM
Jan 15 1998 2:00:00.000000000AM
Apr 19 1998 1:31:20PM
Apr 19 1998 2:00:00.000000000PM
Dec 20 1998 3:29:55PM
Dec 20 1998 3:00:00.000000000PM
Dec 31 1998 11:59:59PM
Jan 1 1999 12:00:00.000000000AM
NULL
NULL
L'expression suivante permet d'arrondir la partie minute de chaque date dans le port DATE_SHIPPED :
ROUND( DATE_SHIPPED, 'MI' )
DATE_SHIPPED
RETURN VALUE
Jan 15 1998 2:10:30AM
Jan 15 1998 2:11:00.000000000AM
Apr 19 1998 1:31:20PM
Apr 19 1998 1:31:00.000000000PM
Dec 20 1998 3:29:55PM
Dec 20 1998 3:30:00.000000000PM
Dec 31 1998 11:59:59PM
Jan 1 1999 12:00:00.000000000AM
NULL
NULL