티스토리 뷰
커뮤니티의 게시판에 Excel에서는 날짜를 정수로 변경하면 SQL Server에서 변환한 값과 2일의 차이가 난다는 내용이 올라와서 이리저리 찾아서 정리합니다.
예전 Lotus 1-2-3에서는 시작일을 1899-12-31로 잡고 있습니다. 호환성 때문에 Excel은 0 일을 1899-12-31로 계산하고 있습니다. 1900-01-01을 Excel에서 정수로 변경하면 1 이 나오는 것을 알 수 있습니다.
또한 1900-02-29이 Excel에서는 존재합니다.
하지만 날짜를 비교하거나 할 경우 SQL Server에서는 시작일을 1900-01-01 로 처리하고 있습니다. 이른바 0 일이 되는 거죠. 1900-02-29을 T-SQL에서 변환하면 에러가 발생합니다.
SELECT CONVERT(DATETIME,'1900-02-29')
메시지242, 수준16, 상태3, 줄1
varchar 데이터형식을datetime 데이터형식으로변환하는중값범위를벗어났습니다.
하여간 여러 가지 내용으로 인해 2일의 차이가 발생하게 됩니다.
SELECT DATEDIFF(dd, '1900-01-01 12:00:00 AM','2011-02-14 12:00:00 AM')
-- 결과 40586
-- Excel 결과 40588
흠...,
'SQL > T-SQL' 카테고리의 다른 글
String Concat, String Group By (0) | 2011.06.27 |
---|---|
기본적이고 유용한 T-SQL (2) - TRY CATCH, ERROR 함수 (0) | 2011.02.18 |
기본적이고 유용한 T-SQL (1) - SPID KILL (0) | 2011.02.11 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- SharePoint 2013
- 목표
- Power BI
- 페이지를 매긴 보고서
- sql server 2012
- Windows Phone 7
- 클라우드
- Windows Azure Mobile Services
- copilot
- redJu
- Power BI Desktop 업데이트
- Paginated Report
- 업데이트
- sharepoint
- SharePoint Object Model
- SharePoint Online
- hongju
- Power BI Update
- Power BI Desktop
- Power BI Desktop Update
- Microsoft Fabric
- Power BI Copilot
- 정홍주
- SharePoint 2010
- SQL Azure
- Windows Azure
- Cloud
- Visual Studio 2010
- Power BI 업데이트
- Windows Azure 업데이트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함