>데이터 베이스 >MySQL 튜토리얼 >SQL Server에서 '문자열에서 날짜 및/또는 시간을 변환할 때 변환에 실패했습니다.' 오류를 방지하려면 어떻게 해야 합니까?

SQL Server에서 '문자열에서 날짜 및/또는 시간을 변환할 때 변환에 실패했습니다.' 오류를 방지하려면 어떻게 해야 합니까?

Susan Sarandon
Susan Sarandon원래의
2025-01-19 19:26:10307검색

How Can I Avoid

SQL Server의 날짜/시간 삽입 문제 해결

SQL Server 테이블에 날짜와 시간을 삽입하면 "문자열에서 날짜 및/또는 시간을 변환할 때 변환에 실패했습니다." 오류가 자주 발생합니다. 이는 일반적으로 데이터 형식이 데이터베이스의 기대와 일치하지 않을 때 발생합니다.

해결책에는 일관된 날짜/시간 형식을 사용하는 것이 포함됩니다. SQL Server는 이상적으로 다음과 같은 변형의 ISO-8601 형식을 허용합니다.

  1. YYYYMMDD(날짜만)
  2. YYYY-MM-DDTHH:mm:ss(날짜 및 시간, 하이픈으로 구분)

ISO-8601을 채택하면 다양한 언어 및 지역 설정 간의 호환성이 보장됩니다. 예를 들어 올바른 삽입은 다음과 같습니다.

<code class="language-sql">INSERT INTO table1 VALUES ('2012-02-21T18:10:00', '2012-01-01T00:00:00');</code>

유연성 향상을 위해 SQL Server 2008 이상 버전에서는 DATETIME2 데이터 유형을 제공합니다. 이를 통해 날짜/시간 문자열을 보다 관대하게 구문 분석할 수 있습니다. 문제가 있는 값은 다음과 같이 처리할 수 있습니다.

<code class="language-sql">SELECT
   CAST('02-21-2012 6:10:00 PM' AS DATETIME2),     -- Successful conversion
   CAST('01-01-2012 12:00:00 AM' AS DATETIME2);    -- Successful conversion</code>

향후 변환 오류를 방지하려면 개발자는 항상 ISO-8601과 같은 표준화된 날짜/시간 형식을 사용해야 하며, 가능한 경우 DATETIME2 데이터 유형을 활용하여 SQL Server 내에서 호환성과 오류 허용 범위를 개선해야 합니다.

위 내용은 SQL Server에서 '문자열에서 날짜 및/또는 시간을 변환할 때 변환에 실패했습니다.' 오류를 방지하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.