Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

CURRENT_TIMESTAMP Exemples dans SQL Server (T-SQL)

Le CURRENT_TIMESTAMP la fonction renvoie la date et l'heure actuelles sous forme de datetime valeur. Cette valeur est dérivée du système d'exploitation de l'ordinateur sur lequel l'instance de SQL Server s'exécute.

Cette fonction est l'équivalent ANSI SQL du T-SQL GETDATE() fonction, vous pouvez donc utiliser celui que vous préférez. Notez que les deux fonctions ont une plage de dates inférieure et une précision fractionnaire par défaut inférieure à celle du T-SQL SYSDATETIME() fonction (qui renvoie une datetime2(7) valeur).

Cet article fournit des exemples de CURRENT_TIMESTAMP fonction, y compris comment vous pouvez l'utiliser avec d'autres fonctions pour renvoyer la valeur qui vous intéresse.

Syntaxe

La syntaxe ressemble à ceci :

CURRENT_TIMESTAMP

Donc, vous appelez simplement cette fonction sans aucun argument.

Exemple

Voici un exemple basique d'utilisation d'un SELECT instruction pour renvoyer la date et l'heure actuelles à partir de CURRENT_TIMESTAMP :

SELECT CURRENT_TIMESTAMP AS Result;

Résultat :

+-------------------------+
| Result                  |
|-------------------------|
| 2018-06-16 00:06:36.740 |
+-------------------------+

Extraire une partie de la date

Si vous ne voulez qu'une partie de la valeur de retour, vous pouvez utiliser DATEPART() pour renvoyer uniquement la partie de la date/heure qui vous intéresse.

Exemple :

SELECT DATEPART(month, CURRENT_TIMESTAMP) AS Result;

Résultat :

+----------+
| Result   |
|----------|
| 6        |
+----------+

Voici un autre exemple utilisant le MONTH() une fonction. Le résultat est le même.

SELECT MONTH(CURRENT_TIMESTAMP) AS Result;

Résultat :

+----------+
| Result   |
|----------|
| 6        |
+----------+

Ces deux fonctions renvoient le mois en cours. Mais ils les renvoient sous la forme d'un entier représentant le numéro du mois.

Si vous voulez le mois nom renvoyé à la place, vous pouvez utiliser DATENAME() :

SELECT DATENAME(month, CURRENT_TIMESTAMP) AS Result;

Résultat :

+----------+
| Result   |
|----------|
| June     |
+----------+

Formater la date

Vous pouvez également utiliser d'autres fonctions T-SQL pour formater la date selon vos besoins.

Voici un exemple d'utilisation du FORMAT() fonction pour formater le résultat :

SELECT 
    FORMAT(CURRENT_TIMESTAMP, 'd', 'en-US') AS 'd, en-US',
    FORMAT(CURRENT_TIMESTAMP, 'd', 'en-gb') AS 'd, en-gb',
    FORMAT(CURRENT_TIMESTAMP, 'D', 'en-US') AS 'D, en-US',
    FORMAT(CURRENT_TIMESTAMP, 'D', 'en-gb') AS 'D, en-gb';

Résultat :

+------------+------------+-------------------------+--------------+
| d, en-US   | d, en-gb   | D, en-US                | D, en-gb     |
|------------+------------+-------------------------+--------------|
| 6/16/2018  | 16/06/2018 | Saturday, June 16, 2018 | 16 June 2018 |
+------------+------------+-------------------------+--------------+

Plus d'exemples sur Comment formater la date et l'heure dans SQL Server.

Incrémenter la valeur et trouver la différence

Vous pouvez utiliser des fonctions comme DATEDIFF() pour retourner la différence entre la date actuelle et une autre date.

Voici un exemple d'utilisation de DATEADD() pour ajouter un mois à la date du jour, puis connaître la différence en jours :

DECLARE @date1 datetime2 = CURRENT_TIMESTAMP;
DECLARE @date2 datetime2 = DATEADD(month, 1, CURRENT_TIMESTAMP);
SELECT DATEDIFF(day, @date1, @date2) AS Result;

Résultat :

+----------+
| Result   |
|----------|
| 30       |
+----------+