Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Convert getdate() to int

When I run the following query:

select convert(int, getdate())

I get the result:

-----------
41238

(1 row(s) affected)

Does anyone knows what does this mean?

like image 983
Danilo Lima Avatar asked Nov 26 '12 18:11

Danilo Lima


2 Answers

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

like image 99
JonH Avatar answered Oct 05 '22 07:10

JonH


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())
like image 37
Malkus Avatar answered Oct 05 '22 08:10

Malkus