When I run the following query:
select convert(int, getdate())
I get the result:
-----------
41238
(1 row(s) affected)
This is because SQL natively keeps the number of days since 01/01/1900
The decimal after the integer value is the time.
32.5
would equal 02/01/1900 12:00 pm
If you are looking to get and work with only part of the date as an integer I would recommend using datepart
This statement would return only the month and convert that value to an integer.
select convert(int, datepart(mm,getdate())
Its the number of days since I think 1/1/1900
, sql-server keeps the number of days since then.
Try dividing that number by roughly 365. You should get the value back in years (112). Since 1900 + 112 = 2012