복붙노트

[SQL] 날짜 시간 데이터 유형에 VARCHAR 데이터 형식의 변환이 범위를 벗어난 값 초래

SQL

날짜 시간 데이터 유형에 VARCHAR 데이터 형식의 변환이 범위를 벗어난 값 초래

나는 C # 윈도우 서비스에서 실행하는 것이 내가 인라인 SQL의 다음과 같은 부분이 있습니다

UPDATE table_name SET 
    status_cd = '2', 
    sdate = CAST('03/28/2011 18:03:40' AS DATETIME), 
    bat_id = '33acff9b-e2b4-410e-baaf-417656e3c255', 
    cnt = 1, 
    attempt_date = CAST('03/28/2011 18:03:40' AS DATETIME) 
WHERE id = '1855'

나는 응용 프로그램 내에서 SQL Server 데이터베이스에 대해이 작업을 실행하면, 나는 다음과 같은 오류가 발생합니다 :

나는 SQL의 조각을 가지고 SQL 관리 Studio에서 실행하는 경우, 그것은 문제없이 실행됩니다.

모든 아이디어를 어떻게이 문제를 일으킬 수 있습니다?

해결법

  1. ==============================

    1.모호한 날짜 형식은 로그인의 언어에 따라 해석됩니다. 이 작품

    모호한 날짜 형식은 로그인의 언어에 따라 해석됩니다. 이 작품

    set dateformat mdy
    
    select CAST('03/28/2011 18:03:40' AS DATETIME)
    

    이것은하지 않습니다

    set dateformat dmy
    
    select CAST('03/28/2011 18:03:40' AS DATETIME)
    

    올바른 데이터 형식으로 매개 변수화 쿼리를 사용하는 경우 이러한 문제를 피할 수 있습니다. 또한 모호 "분리되지 않은 'yyyymmdd 형식의 HH를 사용할 수 있습니다 : MM : SS

  2. ==============================

    2.당신이 자유에있는 경우, 언어 / 지역 perferences을 상속 것이다, 자신의 로그인에 서비스 계정을 변경합니다.

    당신이 자유에있는 경우, 언어 / 지역 perferences을 상속 것이다, 자신의 로그인에 서비스 계정을 변경합니다.

    문제의 진짜 핵심은 다음과 같습니다

    그래서 당신은 미래에 이러한 문제가 발생하지 않습니다 것을 매개 변수화 된 쿼리를 사용하여 시작하십시오. 또한 더 강력한 예측 가능하고 좋습니다.

  3. ==============================

    3.I는 물론, 사용하는 쿼리를 매개 변수화, 항상 날짜 시간에 작업을 C #과가 제공하는 옵션을 포맷하기 있으며, toString ()에 개체를 C # 및 SQL 사이의 날짜와 함께 작업 할 수있는 가장 좋은 방법을 생각한다. 당신은 더 나은 예를 들어 날짜 YMD을 설정처럼이 문제가하지 않도록 SQL Server에서 날짜 사용하기 전에 설정 날짜 <형식> (여기가 MSDN에 설정 DATEFORMAT 설명이) 실행합니다. 좋은 연습 그냥 데이터베이스에 대한 연결을 여는 중 한 후 그것을 할 것이다, 그래서 당신은,이 열려있는 동안 형식을 mantains 때문에 연결 당 한 번 할 필요가있다. 그런 다음, 수 항상 'YYYY-MM-DD HH : MM : SS : FFFF'와 작업 형식을 지원합니다. 당신의 매개 변수화 쿼리에 DateTime 개체를 전달하려면 DateTime.ToString ( 'YYYY-MM-DD HH를 : MM : SS를 : FFFF')를 사용할 수 있습니다. 'DD / MM-YYYY'DateTime.ParseExact (<일부 날짜 문자열>은 CultureInfo를 : C #을에 이상한 형식의 날짜를 구문 분석을 위해 당신은 입력 형식이 정확히 지정이 옵션을 가지고 DateTime.ParseExact () 메소드를 사용할 수 있습니다 .InvariantCulture). 여기) MSDN에 DateTime.ParseExact () 설명이

    I는 물론, 사용하는 쿼리를 매개 변수화, 항상 날짜 시간에 작업을 C #과가 제공하는 옵션을 포맷하기 있으며, toString ()에 개체를 C # 및 SQL 사이의 날짜와 함께 작업 할 수있는 가장 좋은 방법을 생각한다. 당신은 더 나은 예를 들어 날짜 YMD을 설정처럼이 문제가하지 않도록 SQL Server에서 날짜 사용하기 전에 설정 날짜 <형식> (여기가 MSDN에 설정 DATEFORMAT 설명이) 실행합니다. 좋은 연습 그냥 데이터베이스에 대한 연결을 여는 중 한 후 그것을 할 것이다, 그래서 당신은,이 열려있는 동안 형식을 mantains 때문에 연결 당 한 번 할 필요가있다. 그런 다음, 수 항상 'YYYY-MM-DD HH : MM : SS : FFFF'와 작업 형식을 지원합니다. 당신의 매개 변수화 쿼리에 DateTime 개체를 전달하려면 DateTime.ToString ( 'YYYY-MM-DD HH를 : MM : SS를 : FFFF')를 사용할 수 있습니다. 'DD / MM-YYYY'DateTime.ParseExact (<일부 날짜 문자열>은 CultureInfo를 : C #을에 이상한 형식의 날짜를 구문 분석을 위해 당신은 입력 형식이 정확히 지정이 옵션을 가지고 DateTime.ParseExact () 메소드를 사용할 수 있습니다 .InvariantCulture). 여기) MSDN에 DateTime.ParseExact () 설명이

  4. ==============================

    4.그것은 날짜 형식 문제입니다. 아일랜드에서 3 월 28 일에 대한 표준 날짜 형식은 "28-03-2011"는 "2011년 3월 28일"반면에 (많은 다른 사람의 사이에서) 미국의 표준이 될 것입니다.

    그것은 날짜 형식 문제입니다. 아일랜드에서 3 월 28 일에 대한 표준 날짜 형식은 "28-03-2011"는 "2011년 3월 28일"반면에 (많은 다른 사람의 사이에서) 미국의 표준이 될 것입니다.

  5. ==============================

    5.당신은 내가 그랬던 것처럼, 어쩌면 당신은 내가 가진 동일한 문제에 직면 해,이 질문의 제목을 구글에서 검색에서 여기 리디렉션되었을 수 있습니다 나는이 솔루션은 영업 이익의 경우는 조금 다르다는 것을 알고 있지만. 날짜 시간이 유효하지 않기 때문에 때때로 당신은이 오류, 즉 그 달의 날짜 수를 초과하는 일에 점 (문자열 형식) 날짜! 예컨대 : CONVERT (날짜 시간, '2015년 6월 31일')는 내가 MySQL의에서 문 변환하는 동안, 저에게이 오류가 발생 (주장하지 않았다! 및 캐치에 정말 열심히 오류를한다) SQL Server에.

    당신은 내가 그랬던 것처럼, 어쩌면 당신은 내가 가진 동일한 문제에 직면 해,이 질문의 제목을 구글에서 검색에서 여기 리디렉션되었을 수 있습니다 나는이 솔루션은 영업 이익의 경우는 조금 다르다는 것을 알고 있지만. 날짜 시간이 유효하지 않기 때문에 때때로 당신은이 오류, 즉 그 달의 날짜 수를 초과하는 일에 점 (문자열 형식) 날짜! 예컨대 : CONVERT (날짜 시간, '2015년 6월 31일')는 내가 MySQL의에서 문 변환하는 동안, 저에게이 오류가 발생 (주장하지 않았다! 및 캐치에 정말 열심히 오류를한다) SQL Server에.

  6. ==============================

    6.JAVA8 : 사용 LocalDateTime.now의 toString () ().

    JAVA8 : 사용 LocalDateTime.now의 toString () ().

  7. ==============================

    7.나는 그것이 MYSQL 다른 내가 SQL을 사용하고이 문제를 직면 이 솔루션은이 형식에 퍼 팅되었다 : 날짜 = ( 'm-D-Y H : m : S'); 보다는 = 일 ( 'Y-m-D H : m : S');

    나는 그것이 MYSQL 다른 내가 SQL을 사용하고이 문제를 직면 이 솔루션은이 형식에 퍼 팅되었다 : 날짜 = ( 'm-D-Y H : m : S'); 보다는 = 일 ( 'Y-m-D H : m : S');

  8. from https://stackoverflow.com/questions/5466100/conversion-of-a-varchar-data-type-to-a-datetime-data-type-resulted-in-an-out-of by cc-by-sa and MIT license