[DB] Datetime, Smalldatetime and DateTime2
2013. 2. 22. 10:08ㆍDatabase
Datetime, Smalldatetime and Datetime2
MS SQL Server에서는 날짜를 표현하기 위한 타입을 다음과 같이 지원하고 있습니다.
비고 | datetime | smalldatetime | datetime2 |
---|---|---|---|
표현범위 | 1753.1.1~9999.12.31 | 1900.1.1~2079.6.6 | 0001.1.1~9999.12.31 |
정확도 | 1/1000초 (0.003, 0.007. 0.000 단위로 반올림) | 분단위 (30초 기준 반올림) | 1/10000000 (천만분의 1초) |
저장공간 | 8Byte | 4Byte | 6-8Byte |
비고 | 정확도 문제로 23시 59분 59.998~9초를 저장하면 자동으로 다음 날로 반올림됩니다. | 정확도 문제로 23시 59분 30초를 저장하면 자동으로 다음 날로 반올림됩니다. | MS SQL Server 2008부터 T-SQL에서 사용가능 |
선택기준
날짜를 표현하는 방법은 다양하고 장단점이 존재합니다. Datetime, SmallDatetime, Datetime2는 날짜와 시간을 무결성에 어긋나지 않게 관리해주고 사용할 수 있게 해줍니다. 하지만 정확도가 높아질 수록 성능이 비교적 떨어지고 차지하는 데이터크기도 커지게 됩니다. 단지 날짜를 출력만 하는 목적이거나, 좀더 고성능을 지향한다면 char를 쓰는 것도 하나의 좋은 대안이 될 수 있습니다.
한가지 분명한 것은 DB를 설계할 때 최선은 있지만, 정답은 없다는 자세를 가지는 가지는 것이 아닐까요?
참고자료
- Datetime and smalldatetime http://msdn.microsoft.com/en-us/library/aa258277%28v=SQL.80%29.aspx
- Datetime2(Transact-SQL) http://msdn.microsoft.com/ko-kr/library/bb677335.aspx
'Database' 카테고리의 다른 글
[DB] Local DB 사용 시 ReadOnly 문제 해결 (1) | 2014.03.24 |
---|---|
[DB] SQL Azure에 aspnet_regsql을 통해 Membersip Table 생성하기 (0) | 2014.03.24 |
[DB] MySQL 원격 접속 설정하기 (1) | 2011.11.25 |
[DB] Local DB를 사용하는 Web Application 호스팅하기 (0) | 2011.11.16 |
[DB] RollUp에 대한 이해 (0) | 2010.05.14 |