> 데이터 베이스 > MySQL 튜토리얼 > SQL Server의 `datetime` 데이터 유형에서 밀리초 정밀도는 얼마나 정확합니까?

SQL Server의 `datetime` 데이터 유형에서 밀리초 정밀도는 얼마나 정확합니까?

Patricia Arquette
풀어 주다: 2025-01-13 08:39:42
원래의
247명이 탐색했습니다.

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의 `datetime` 데이터 유형에서 밀리초 정밀도는 얼마나 정확합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿