Maison >base de données >tutoriel mysql >Quelle est la précision en millisecondes du type de données « datetime » de SQL Server ?

Quelle est la précision en millisecondes du type de données « datetime » de SQL Server ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-13 08:39:42282parcourir

How Accurate is Millisecond Precision in SQL Server's `datetime` Data Type?

Compréhension approfondie de la précision à la milliseconde des champs de date SQL Server

Lorsque vous utilisez SQL Server pour traiter les horodatages, il est essentiel de comprendre ses limites en matière de précision.

Considérez la structure de tableau suivante :

<code class="language-sql">CREATE TABLE [TESTTABLE]
(
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [DateField] [datetime] NULL,
    [StringField] [varchar](50),
    [IntField] [int] NULL,
    [BitField] [bit] NULL
)</code>

Exécutez le code suivant :

<code class="language-sql">BEGIN 
   INSERT INTO TESTTABLE (IntField, BitField, StringField, DateField) 
   VALUES ('1', 1, 'hello', {ts '2009-04-03 15:41:27.378'});  

   SELECT SCOPE_IDENTITY()  
END</code>

Le comportement attendu est de stocker l'horodatage avec une précision totale à la milliseconde. Cependant, lors de l'interrogation de la table à l'aide de l'instruction suivante :

<code class="language-sql">select * from testtable with (NOLOCK)</code>

Vous remarquerez peut-être que la colonne DateField affiche :

<code>2009-04-03 15:41:27.*377*</code>

Limitation de précision

SQL Server ne stocke qu'environ 1/300 de seconde. Ces valeurs de temps tombent toujours sur 0, 3 et 7 millisecondes. Par exemple :

<code>00:00:00.000<br></br>
00:00:00.003<br></br>
00:00:00.007<br></br>
00:00:00.010<br></br>
00:00:00.013<br></br>
...</code>

Atteignez une précision à la milliseconde

Si la précision à la milliseconde est critique, il n'existe pas de solution directe dans les types de données natifs de SQL Server. Vous pouvez envisager les méthodes suivantes :

  • Champ numérique personnalisé : Stockez l'horodatage en tant que champ numérique personnalisé et reconstruisez-le lors de la récupération.
  • Stockage de chaîne : Stockez l'horodatage sous forme de chaîne dans un format connu. De plus, vous pouvez stocker des dates approximatives dans des types de dates natifs pour un accès plus rapide, mais avec moins de précision.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn