MSSQL에서 날짜+시간을 나타내는 데이터형식은
데이트타임(datetime)과
스몰데이트타임(smalldatetime)
이 두 가지가 있습니다.
( 참고 : MS Learn - 날짜 및 시간(Transact-SQL) )
날짜, 시간 관련 데이터 형식이라고 구분한다면 날짜만 나타내는 '데이트(date)'타입도 있습니다.
이 두 가지의 큰 차이는
datetime | smalldatetime | |
정확도 | 1/100초(3.33밀리초) | 1분 |
저장 공간 | 8 byte | 4 byte |
범위 | 1753년 1월 1일부터 9999년 12월 31일까지 | 1900년 1월 1일부터 2079년 1월 6일까지 |
스몰데이트타임은 사용할 때 바로 변환이 되지 않는 경우가 꽤 있습니다.
예를 들면 'ToString'이 바로 먹히지 않는 경우가 있습니다.
이것이 언어를 타는 것인지 DB를 타는 것인지 드라이버를 타는 것인지 모르겠습니다.
다른 DB에서는 지원하지 않는 경우가 많아 대부분 다른 DB로 전환하는 경우 컨버팅작업을 해야 하죠.
하지만 일반적인 웹사이트들은 보통 분 단위까지만 기록하기 때문에
밀리초(milliseconds)를 기록하지 않는 스몰데이트타임이 유리한 면이 있습니다.
밀리초 단위까지의 정밀도가 필요하지 않다면 스몰데이트타임은 좋은 선택입니다.
(형변환 문제만 없다면이야.....)
가끔 날짜는 무조건 "데이트타임형이여야 한다!"라는 고정관념에 사로잡힌 분들을 보는데
날짜를 가지고 특별한 컨트롤을 하지 않고 단순히 화면에 표시만 하는 것이라면 문자열(char, varchar등등)이 더 나을 수도 있습니다.
상황에 맞게 센스를 발휘해야 하죠 ㅎㅎㅎ