FirebirdSQL logo

Exemple DATEADD

Example 1. Utilisation de la fonction DATEADD
DATEADD (28 DAY TO CURRENT_DATE)
DATEADD (-6 HOUR TO CURRENT_TIME)
DATEADD (MONTH, 9, DATEOFCONCEPTION)
DATEADD (-38 WEEK TO DATEOFBIRTH)
DATEADD (MINUTE, 90, CAST('NOW' AS TIME))
DATEADD (? YEAR TO DATE '11-SEP-1973')
SELECT
  CAST(DATEADD(-1 * EXTRACT(MILLISECOND FROM ts) MILLISECOND TO ts) AS VARCHAR(30)) AS t,
  EXTRACT(MILLISECOND FROM ts) AS ms
FROM (
    SELECT TIMESTAMP'2014-06-09 13:50:17.4971' as ts
    FROM RDB$DATABASE
) a
T                             MS
------------------------------------
2014-06-09 13:50:17.0000	497.1

DATEDIFF()

Disponible en

DSQL, PSQL

Syntaxe
DATEDIFF (<args>)

<args> ::= <unit> FROM <moment_1> TO <moment_2>
         | <unit>, <moment_1>, <moment_2>

<unit> ::=
    YEAR | MONTH | WEEK | DAY | WEEKDAY | YEARDAY
  | HOUR | MINUTE | SECOND | MILLISECOND
Table 1. paramètres de fonction DATEDIFF
Paramètre Description

unit

Composante date/heure.

monent_1

Une expression de type DATE, TIME ou TIMESTAMP.

monent_2

Une expression de type DATE, TIME ou TIMESTAMP.

Le type de résultat renvoyé :

BIGINT

La fonction DATEDIFF renvoie le nombre d’années, de mois, de semaines, de jours, d’heures, de minutes, de secondes ou de millisecondes entre deux valeurs de date/heure.

Caractéristiques d’utilisation :

  • Les paramètres DATE et TIMESTAMP peuvent être utilisés ensemble. La co-utilisation du type TIME avec le type DATE et TIMESTAMP n’est pas autorisée ;

  • Avec un argument de type TIMESTAMP et DATE, n’importe quel composant date/heure <unit> peut être utilisé ;

  • Seuls HOUR, MINUTE, SECOND et MILLISECOND peuvent être utilisés pour le type de données TIME.

Note
  • La fonction DATEDIFF ne vérifie pas les différences dans les composants de date/heure plus petits que ceux spécifiés dans le premier argument <unit>. Le résultat est :

    • DATEDIFF (YEAR, DATE '1-JAN-2009', DATE '31-DEC-2009') retournera 0, mais

    • DATEDIFF (YEAR, DATE '31-DEC-2009', DATE '1-JAN-2010') retournera 1

  • Cependant, pour les plus petits composants de date/heure, nous avons :

    • DATEDIFF (DAY, DATE '26-JUN-1908', DATE '11-SEP-1973') retournera 23818

    • DATEDIFF (DAY, DATE '30-NOV-1971', DATE '8-JAN-1972') retourne 39

  • Une valeur négative de la fonction indique que la date/heure du moment_2 est inférieure à celle du moment_1.