Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article fournit des informations sur la prise en charge de Microsoft pour le saut de seconde.
Numéro de la base de connaissances d’origine : 2722715
Résumé
Cet article contient des informations sur la prise en charge de Microsoft pour le saut de seconde. La seconde de saut est un ajustement d’une seconde, qui est parfois appliqué au temps universel coordonné (UTC) afin de conserver son heure de jour proche de l’heure solaire moyenne, ou UT1.
Note
Windows Server 2019 et Windows 10 Octobre 2018 Update prennent en charge les secondes bissextiles dans la plateforme. Toutefois, cet article ne s’applique pas strictement à ces systèmes d’exploitation ou ultérieurs. Pour plus d’informations, consultez l’article suivant :
Plus d’informations
(1) Windows
À propos du système d’exploitation
Le deuxième traitement Leap n’est pas géré séparément par le système d’exploitation Windows. Par exemple, les informations d’année, de mois, de date et d’heure dans le format suivant ne sont pas prises en charge par le système d’exploitation Windows :
aaaa/mm/jj 08:59:60
Par conséquent, 2012/7/1 08:59:60 est traité comme 2012/7/1 09:00:00, conformément au format ISO 8601.
À propos du service de synchronisation de l’heure (service de temps Windows)
Le service de temps Windows n’implémente pas de seconde bissextile même s’il passe l’indicateur Leap Indicator (LI) du serveur NTP au serveur qui héberge le service de temps Windows et les clients de bas niveau qui se synchronisent à partir de celui-ci. Le service de synchronisation de temps Windows (W32Time) n’insère pas de seconde de saut, et passe plutôt au processus de synchronisation de temps habituel.
Pendant la courte période qui suit l’introduction d’une seconde bissextile sur un serveur NTP en amont (y compris le serveur W32time), une différence de temps d’environ une seconde se produit entre ce serveur NTP en amont et les clients W32time qui se synchronisent à partir de celui-ci. Les clients W32time corrigent leurs horloges locales lorsqu’ils synchronisent ensuite l’heure à partir de leur serveur en amont.
Pour plus d’informations, consultez l’article suivant de la Base de connaissances Microsoft (KB) :
909614 Comment le service de temps Windows traite une seconde bissextile
En outre, dans le service de temps Windows, il n’est pas toujours possible d’empêcher l’occurrence de différences de temps marginales, comme une seconde. Le système d’exploitation est conçu pour gérer les variations de temps. Les variantes leap seconde sont gérées correctement, ce qui permet une exécution ininterrompue. Pour plus d’informations, consultez l’article de la base de connaissances suivant :
939322 la limite de prise en charge pour configurer le service de temps Windows pour les environnements à haute précision
À propos du service de cluster Comme pour la configuration du cluster, il est identique à celui du système d’exploitation : le deuxième traitement bissextile n’est pas effectué.
(2) SQL Server 2000, 2005, 2008, 2008 R2, 2012 et 2014
SQL Server n’utilise pas de données de temps pour gérer les opérations internes telles que les transactions. Par conséquent, même si un écart d’une seconde se produit dans le temps système en raison du saut de seconde, il n’affecte pas les opérations SQL Server. Comme avec le système d’exploitation Windows, SQL Server ne reconnaît pas indépendamment le saut de seconde.
N’oubliez pas que le type de données date (par exemple, datetime) ne prend pas en charge le format dans lequel la valeur de seconde atteint 60 comme 2012/7/1 08:59:60. Par conséquent, si une connexion est établie à SQL Server à partir d’une application qui s’exécute sur un système d’exploitation qui prend en charge le saut de seconde et que le système d’exploitation tente de définir une seconde bissextile (données dans lesquelles la valeur de la seconde est 60) dans la colonne et la variable du type de données date, une erreur est retournée. Pour plus d’informations, consultez la section « Informations de référence » suivante.
Informations de référence
[Exemple] Lorsque la seconde bissextile est gérée comme type de données de date dans SQL Server
create table leap_second(
a int,
b datetime,
)
go
insert into [leap_second] values (1,convert(datetime,'2012/07/01 08:59:60'))
go
select convert(datetime,'2012/07/01 08:59:60')
go
select datediff(day,convert(datetime,'2012/07/01 08:59:60'),getdate())
go
declare @b datetime
set @b='2012/07/01 08:59:60'
go
declare @c time
set @c='08:59:60'
go
declare @d datetime2
set @d='2012/07/01 08:59:60'
go
declare @e datetimeoffset
set @e='2012/07/01 08:59:60'
go
Result
Message 242, Niveau 16, État 3, Ligne 1
En raison de la conversion du type de données varchar vers le type de données datetime, la valeur est définie en dehors de la plage.
L’instruction s’est terminée.
Message 242, Niveau 16, État 3, Ligne 1
En raison de la conversion du type de données varchar vers le type de données datetime, la valeur est définie en dehors de la plage.
Message 242, Niveau 16, État 3, Ligne 1
En raison de la conversion du type de données varchar vers le type de données datetime, la valeur est définie en dehors de la plage.
Message 242, Niveau 16, État 3, Ligne 3
En raison de la conversion du type de données varchar vers le type de données datetime, la valeur est définie en dehors de la plage.
Message 241, Niveau 16, État 1, Ligne 2
Le processus de conversion a échoué pendant la conversion de la chaîne de caractères vers la date et l’heure, ou vers l’un des deux.
Message 241, Niveau 16, État 1, Ligne 2
Le processus de conversion a échoué pendant la conversion de la chaîne de caractères vers la date et l’heure, ou vers l’un des deux.
Message 241, Niveau 16, État 1, Ligne 2
Le processus de conversion a échoué pendant la conversion de la chaîne de caractères vers la date et l’heure, ou vers l’un des deux.
(3) Exchange Server 2003, 2007, 2010 et 2013
L’heure utilisée dans Exchange Server inclut l’heure mesurée par l’horloge système et l’heure calculée comme période écoulée depuis le début du service. Dans le traitement qui utilise l’horloge système, le serveur Exchange fonctionne sans reconnaître la seconde bissextile. D’autre part (lorsque la période écoulée est concernée), bien qu’une différence d’une seconde se produise avec l’insertion de la seconde bissextile, cet écart peut se produire même dans des circonstances normales. Comme avec le système d’exploitation Windows, Exchange Server est conçu pour gérer des variations de temps mineures. Par conséquent, les opérations Exchange Server ne sont pas affectées.
En plus de l’opération interne, une planification au format iCalendar représente un cas dans lequel il est possible de recevoir (à partir de l’extérieur) une valeur de temps à laquelle une seconde saut a été ajoutée. Toutefois, lorsque Exchange Server reçoit des planifications au format iCalendar, le programme prend uniquement en charge les formats dans lesquels la notation temporelle est définie conformément à la norme RFC 5545. En ce qui concerne le saut de seconde, la notation des secondes est prise en charge dans la plage 060. Si un nombre supérieur à 60 est spécifié comme valeur de secondes, il est traité comme un format non valide et n’est pas reconnu comme étant le format iCalendar correct.
Dans Outlook, 60 secondes sont considérées comme 0. Par conséquent, 2012/07/01 08:59:60 devient 2012/07/01 08:59:00. Cela signifie qu’il existe une possibilité d’écart d’une minute au maximum. Dans ce cas, l’ordre de réception des e-mails peut sembler s’être dévié, mais sinon il n’y a aucun effet sur les opérations.
Pour plus d’informations, consultez les rubriques suivantes :
2.2.36 [RFC5545] Section 3.3.12 Heure
(4) Internet Information Services (IIS)
La seconde bissextile n’a aucun effet dans IIS.
(5) Autres
Les applications qui s’exécutent dans Windows utilisent généralement l’horloge système. Par conséquent, ils peuvent être utilisés sans considération pour la seconde bissextile.
Toutefois, si un produit Microsoft est accessible à partir d’une application qui gère le temps par lui-même et qui prend en charge le saut de seconde, ou d’une application qui s’exécute sur un système d’exploitation qui prend en charge le saut de seconde, les problèmes sont susceptibles de se produire. Cela est dû au fait que les produits Microsoft ne reconnaissent pas le saut de seconde.
En outre, les applications ne doivent pas compter sur le temps système pour augmenter monotoniquement. Au lieu de cela, ils doivent utiliser la fonction GetTickCount64() pour lire le nombre de graduations actuel, qui est l’heure depuis le démarrage en millisecondes.