DataSunrise sponsorise AWS re:Invent 2024 à Las Vegas, veuillez nous rendre visite au stand n°2158 de DataSunrise

Formats Datetime SQL Server

Formats Datetime SQL Server

Introduction

Gérer les dates et les heures efficacement est crucial pour de nombreuses applications de bases de données. SQL Server dispose d’outils puissants pour travailler avec les dates et les heures, mais il peut être difficile de comprendre les différents formats. Ce guide vous présente les éléments essentiels des formats datetime de SQL Server, vous aidant à tirer le meilleur parti de ces fonctions puissantes.

Qu’est-ce que SQL Server?

Avant de plonger dans les formats datetime, expliquons brièvement ce qu’est SQL Server. Microsoft SQL Server est un système de gestion de base de données relationnelle (SGBDR) qui stocke et récupère des données pour diverses applications. Il est largement utilisé dans les environnements d’entreprise en raison de sa scalabilité, sa performance et son intégration avec d’autres produits Microsoft.

Types de Données Date et Heure SQL Server

SQL Server offre plusieurs types de données pour stocker les informations de date et d’heure. Explorons ces types et leurs formats.

TypeCatégorieCas d’utilisation
datetimeLegacyStockage général des dates et heures, compatible avec les anciens systèmes
smalldatetimeLegacyStockage compact des dates et heures avec une précision à la minute
dateModerneStockage des seules informations de date, par exemple, anniversaires, événements annuels
timeModerneStockage des seules informations de temps, par exemple, les horaires quotidiens
datetime2ModerneStockage de la date et de l’heure avec haute précision, plage de dates plus large
datetimeoffsetModerneStockage de la date et de l’heure avec prise en compte du fuseau horaire, applications globales

Types Datetime Legacy de SQL Server

  1. Datetime peut stocker des dates et heures du 1er janvier 1753 au 31 décembre 9999. Sa précision est de 3.33 millisecondes.
  2. smalldatetime: Une période de temps plus courte, du 1er janvier 1900 au 6 juin 2079, précise à la minute.

Types de Données Modernes (SQL Server 2008 et versions ultérieures)

  1. date: Stocke uniquement la partie date, s’étendant du 1er janvier 0001 au 31 décembre 9999.
  2. time: Stocke uniquement la partie heure, avec une précision allant jusqu’à 100 nanosecondes.
  3. datetime2: Une extension de datetime avec une plage de dates plus large et une plus haute précision.
  4. datetimeoffset: Semblable à datetime2 mais inclut des informations sur le décalage du fuseau horaire.

Format de Sortie par Défaut

Par défaut, SQL Server affiche les valeurs datetime dans le format : ‘AAAA-MM-JJ HH:MI:SS.mmm’. Par exemple :


SELECT GETDATE() AS CurrentDateTime;

Cela pourrait retourner l’heure actuelle, comme : ‘202*-**-** 14:30:45.123’

Travailler avec les Formats Datetime SQL Server

Comprendre comment manipuler et formater les valeurs datetime est essentiel pour une gestion efficace des données. Explorons quelques scénarios courants et leurs solutions.

Conversion de Chaînes en Datetime

SQL Server fournit plusieurs fonctions pour convertir des chaînes en valeurs datetime. La fonction CONVERT est particulièrement polyvalente :


DECLARE @dateString VARCHAR(30) = '2024-07-12 14:30:45';
SELECT CONVERT(DATETIME, @dateString) AS ConvertedDateTime;

Cette requête convertit la chaîne en valeur datetime.

Formatage du Datetime SQL Server pour l’Affichage

Pour afficher les valeurs datetime dans des formats spécifiques, vous pouvez utiliser la fonction CONVERT avec des codes de style :


DECLARE @currentDate DATETIME = GETDATE();
SELECT CONVERT(VARCHAR, @currentDate, 101) AS USFormat,
       CONVERT(VARCHAR, @currentDate, 103) AS BritishFormat,
       CONVERT(VARCHAR, @currentDate, 120) AS ISO8601Format;

Cette requête affiche la date actuelle dans les formats US (MM/JJ/AAAA), britannique (JJ/MM/AAAA), et ISO8601 (AAAA-MM-JJ HH:MI:SS).

Manipulations Avancées de Datetime

Approfondissons les opérations datetime plus complexes dans SQL Server.

Arithmétique de Date

SQL Server vous permet de réaliser des opérations arithmétiques sur les dates :


DECLARE @startDate DATETIME = '2024-07-12';
SELECT 
    DATEADD(DAY, 7, @startDate) AS OneWeekLater,
    DATEADD(MONTH, 1, @startDate) AS OneMonthLater,
    DATEADD(YEAR, 1, @startDate) AS OneYearLater;

Cette requête démontre l’ajout de jours, de mois et d’années à une date.

Extraction de Parties d’un Datetime

Vous pouvez extraire des parties spécifiques d’un datetime en utilisant diverses fonctions :


DECLARE @sampleDate DATETIME = '2024-07-12 14:30:45';
SELECT 
    YEAR(@sampleDate) AS Year,
    MONTH(@sampleDate) AS Month,
    DAY(@sampleDate) AS Day,
    DATEPART(WEEKDAY, @sampleDate) AS DayOfWeek;

Cette requête extrait l’année, le mois, le jour et le jour de la semaine à partir de la date échantillon.

Bonnes Pratiques pour les Formats Datetime

Lorsque vous travaillez avec les formats datetime dans SQL Server, considérez ces meilleures pratiques :

  1. Utilisez le type de données approprié à vos besoins. Si vous avez seulement besoin de la date, utilisez le type ‘date’ au lieu de ‘datetime’.
  2. Soyez cohérent avec vos formats datetime dans toute votre base de données et vos applications.
  3. Lors de la conversion de chaînes en datetime, utilisez toujours des formats neutres par rapport à la langue (comme ‘AAAAMMJJ’) pour éviter toute ambiguïté.
  4. Utilisez des requêtes paramétrées lorsque vous travaillez avec des valeurs datetime pour éviter les injections SQL et assurer une typage correct des données.

Dépannage des Problèmes Courants de Datetime

Même les développeurs expérimentés peuvent rencontrer des problèmes avec les formats datetime. Voici quelques problèmes courants et leurs solutions :

Gérer les Différents Paramètres Régionaux


SET LANGUAGE English;
SELECT CONVERT(DATETIME, '07/12/2024') AS USDate;
SET LANGUAGE British;
SELECT CONVERT(DATETIME, '07/12/2024') AS BritishDate;

Ce exemple montre comment le changement des paramètres de langue affecte l’interprétation des dates. Soyez toujours explicite sur votre format de date pour éviter toute confusion.

Gérer l’Heure d’Été

Lors de l’utilisation de datetimeoffset, soyez conscient des changements d’heure d’été :


DECLARE @summerDate DATETIMEOFFSET = '2024-07-12 12:00:00 +01:00';
DECLARE @winterDate DATETIMEOFFSET = '2024-12-12 12:00:00 +00:00';
SELECT 
    @summerDate AS SummerDate,
    @winterDate AS WinterDate,
    DATEDIFF(HOUR, @summerDate, @winterDate) AS HourDifference;

Cette requête démontre l’importance de considérer les fuseaux horaires et l’heure d’été lorsqu’on calcule les différences de temps.

Résumé et Conclusion

Comprendre les formats datetime de SQL Server est crucial pour une gestion efficace des bases de données. Nous avons couvert les bases de SQL Server, exploré les différents types de données datetime, et approfondi les techniques de formatage et de manipulation. Pour utiliser les données datetime dans SQL Server, suivez les meilleures pratiques et évitez les erreurs courantes pour travailler en toute confiance dans les applications.

Pour maîtriser les formats datetime, vous devriez sélectionner le type de données approprié. Maintenir la cohérence dans les formats utilisés est important. De plus, prenez en compte le contexte de vos données lorsque vous travaillez avec les formats datetime. Avec ces compétences, vous serez bien équipé pour gérer tout défi datetime se présentant à vous.

Suivant

Solutions Cloud vs SaaS

Solutions Cloud vs SaaS

En savoir plus

Besoin de l'aide de notre équipe de support ?

Nos experts seront ravis de répondre à vos questions.

Informations générales :
[email protected]
Service clientèle et support technique :
support.datasunrise.com
Demandes de partenariat et d'alliance :
[email protected]