This is because SQL initially saves the number of days from 01/01/1900
The decimal value after the integer value is the time.
32.5 will be equal to 02/01/1900 12:00 pm
If you want to receive and work with only part of the date as an integer, I would recommend using datepart
This operator will return only a month and convert this value to an integer.
select convert(int, datepart(mm,getdate())
Malkus
source share