SQL Server 날짜 및 시간 정밀도 문제
SQL Server에서 날짜/시간 열에 값을 삽입할 때 예상치 못한 밀리초 손실이 발생할 수 있습니다. 예를 들어 다음 쿼리는 다음과 같습니다.
<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>
이후 SELECT * FROM TESTTABLE WITH (NOLOCK)
쿼리를 사용하면 DateField 열의 값이 다음과 같이 나타날 수 있습니다.
<code>2009-04-03 15:41:27.*377*</code>
밀리초 정확도 차이 설명
이러한 밀리초의 손실은 SQL Server의 저장 용량 제한으로 인해 발생합니다. SQL Server의 시간 정밀도는 약 1/300초이며 이러한 간격은 항상 0, 3 및 7밀리초입니다. 따라서 위의 예에서 값은 가장 가까운 3밀리초 간격으로 반내림되어 관찰된 .377 접미사가 됩니다.
밀리초 정밀도 과제 충족
밀리초 정확도가 중요한 경우 쉽게 해결할 수 없습니다. 제안된 솔루션은 다음과 같습니다.
이러한 방법은 복잡성을 더하지만 밀리초 정밀도가 절대적으로 필요한 경우 필요한 정밀도를 제공할 수 있습니다.
위 내용은 날짜/시간 값을 삽입할 때 SQL Server에서 밀리초가 손실되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!