首頁 > 資料庫 > mysql教程 > SQL Server 的「日期時間」資料類型中的毫秒精確度有多準確?

SQL Server 的「日期時間」資料類型中的毫秒精確度有多準確?

Patricia Arquette
發布: 2025-01-13 08:39:42
原創
245 人瀏覽過

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

深入理解SQL Server日期欄位的毫秒精確度

在使用SQL Server處理時間戳記時,了解其精確度限制至關重要。

考慮以下表格結構:

<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>
登入後複製

執行以下程式碼:

<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>
登入後複製

預期行為是儲存具有完整毫秒精度的時間戳。但是,當使用以下語句查詢表格時:

<code class="language-sql">select * from testtable with (NOLOCK)</code>
登入後複製

您可能會注意到DateField欄位顯示:

<code>2009-04-03 15:41:27.*377*</code>
登入後複製

精度限制

SQL Server 只儲存約 1/300 秒的時間。這些時間值總是落在 0、3 和 7 毫秒。例如:

<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>
登入後複製

實現毫秒精度

如果毫秒精確度至關重要,SQL Server 的原生資料類型中沒有直接的解決方案。可以考慮以下方法:

  • 自訂數字字段: 將時間戳儲存為自訂數字字段,並在檢索時重新建構。
  • 字串儲存: 將時間戳儲存為已知格式的字串。此外,您可以將近似日期儲存在原生日期類型中以實現更快訪問,但精度較低。

以上是SQL Server 的「日期時間」資料類型中的毫秒精確度有多準確?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板