SQL Date/Time Storage and Precision Guide
datetime
Stores date and time; range from 1753 to 9999; about 3ms precision; uses 8 bytes; suitable for legacy systems.
datetime2
Improved version of datetime; range from 0001 to 9999; supports up to 7-digit fractional seconds; uses 6–8 bytes; preferred for new applications.
datetimeoffset
Like datetime2 but includes time zone offset; ideal for global or multi-time zone data; uses 8–10 bytes.
date
Stores only the date (no time); range from 0001 to 9999; uses 3 bytes; useful for birthdates, holidays, and any date-only fields.
time
Stores only the time (no date); supports precision up to 7 fractional seconds; uses 3–5 bytes; ideal for durations or business hours.