복붙노트

[SQL] MSExcel 및 SQL 서버에서 날짜 변환의 차이

SQL

MSExcel 및 SQL 서버에서 날짜 변환의 차이

엑셀에서 텍스트로 날짜를 변환하는 작업을하고 SQL Server의 날짜로 변환 할 의해 생성 된 번호를 사용하는 동안 나는 오늘 정말 이상한 것을 발견했다.

어떻게 그것에 대해 이상한? 다른 결과. 차이 이틀은 정확합니다.

나는 Excel에서 오늘 (20/05/2014 일 / 월 / 년)의 날짜를 가정하고 텍스트의 결과로 41,779을 얻었다.

나는 텍스트 값을 있고 난 날짜로 값을 검색 할 날짜에 SQL 변환을 사용하고 내가 원하는 결과를 얻을하지 않았다.

난 DATETIME2 테스트하지만 난 DATETIME2에 INT 변환 할 수 없습니다 것을 알게

나는 MS 엑셀 전문가도 아니고 SQL 서버 전문가가 아니지만, 무슨 일입니까? 나는 그것이 MS Excel에서 생성 된 번호를하고 2를 제거하여 작업 할 수 있습니다,하지만 여전히 나에게 이해가되지 않습니다.

해결법

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

    1.도니는 다르게) 나는 같은 일을 궁금 일일 세 전 ... 간단한 운동을 할 :

    도니는 다르게) 나는 같은 일을 궁금 일일 세 전 ... 간단한 운동을 할 :

    일일 차이를 설명 대 = DATEVALUE ( "1900-01-01") (날짜 시간 0)를 선택 캐스트를 비교

    및 VBA, Spolsky 조엘, 설명의 아버지를 읽어 하나 추가 윤년을 찾을

    TL; DR

    2 일 설명 - 차이를 확인

    = DATEVALUE ( "1900년 2월 28일") 및 = DATEVALUE ( "1900년 3월 1일")

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

    2.INT의 캐스트가 허용되는 DATETIME에 특히 집중, 불일치에 대한 두 가지 이유가 있습니다.

    INT의 캐스트가 허용되는 DATETIME에 특히 집중, 불일치에 대한 두 가지 이유가 있습니다.

    * (이에 대한 자세한 독서는 고의적하고, 또는 하찮은 고려했을 수 있습니다 제안)

    추가

    상태 Microsoft 기술 지원 항목이 있습니다 :

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

    3.여기 코드를이 웹 사이트를 발견 솔루션보기를 검색 할 수 있습니다. 당신이 아직 버그에 있지 않기 때문에, 1을 빼지 않는 60 미만인 경우 당신은 60에서 임의의 숫자에 대한 검사를 할 필요가있다. 그것은이 끝난 경우 때문에 1900년 2월 29일 버그 일로부터 1을 빼야한다

    여기 코드를이 웹 사이트를 발견 솔루션보기를 검색 할 수 있습니다. 당신이 아직 버그에 있지 않기 때문에, 1을 빼지 않는 60 미만인 경우 당신은 60에서 임의의 숫자에 대한 검사를 할 필요가있다. 그것은이 끝난 경우 때문에 1900년 2월 29일 버그 일로부터 1을 빼야한다

    나는 해결책을 발견하는 곳 https://stackoverflow.com/a/727495/1692632입니다

  4. from https://stackoverflow.com/questions/23759986/difference-between-datetime-converts-in-msexcel-and-sql-server by cc-by-sa and MIT license