vBulletin Search Engine Optimization
| |||||||
| Register | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| Hi there, See if you can help me with the following: I need to write an SQL code that will return me: The 1st day & the Last day of the Previous Month in the following format (smalldatetime): yyyy-mm-dd hh:mi:ss (24h) Regards, -- Message posted via SQLMonster.com http://www.sqlmonster.com/Uwe/Forums...neral/200507/1 |
| |||
| If you don't have a calendar table (which can be very helpful for situations like this), you can do it on-the-fly using SQL Server like so: SELECT DATEADD(m, -1, FirstOfCurrentMonth) as FirstOfPreviousMonth, DATEADD(d, -1, FirstOfCurrentMonth) as LastOfPreviousMonth FROM (SELECT CONVERT(smalldatetime,DATENAME(m, GetDate()) + ' 1,' + DATENAME(yyyy, GETDATE())) as FirstOfCurrentMonth) a Of course, you'll want to do the formatting on the client side. HTH, Stu |
| |||
| On Wed, 20 Jul 2005 16:56:42 GMT, Ray via SQLMonster.com wrote: > Hi there, > > See if you can help me with the following: > > I need to write an SQL code that will return me: > > The 1st day & the Last day of the Previous Month in the following format > (smalldatetime): > > yyyy-mm-dd hh:mi:ss (24h) > > Regards, declare @d1 smalldatetime declare @d2 smalldatetime declare @d3 smalldatetime -- @d1 is the input date set @d1 = CURRENT_TIMESTAMP -- truncate hours, min, etc. set @d1 = convert(smalldatetime, floor(convert(float, @d1))) -- @d2 - last day of previous month set @d2 = dateadd(day, - datepart(day, @d1), @d1) -- @d3 - first day of previous month set @d3 = dateadd(day, - datepart(day, @d2) + 1, @d2) |
| |||
| Hi Stu, Thank you very very much ..... it was a great help. Best regards, Stu wrote: >If you don't have a calendar table (which can be very helpful for >situations like this), you can do it on-the-fly using SQL Server like >so: > >SELECT DATEADD(m, -1, FirstOfCurrentMonth) as FirstOfPreviousMonth, > DATEADD(d, -1, FirstOfCurrentMonth) as LastOfPreviousMonth >FROM (SELECT CONVERT(smalldatetime,DATENAME(m, GetDate()) > + ' 1,' + DATENAME(yyyy, GETDATE())) as FirstOfCurrentMonth) a > >Of course, you'll want to do the formatting on the client side. > >HTH, >Stu -- Message posted via SQLMonster.com http://www.sqlmonster.com/Uwe/Forums...neral/200507/1 |
| ||||
| Ross, Thank you so much .... Ross Presser wrote: >> Hi there, >> >[quoted text clipped - 8 lines] >> >> Regards, > >declare @d1 smalldatetime >declare @d2 smalldatetime >declare @d3 smalldatetime > >-- @d1 is the input date >set @d1 = CURRENT_TIMESTAMP >-- truncate hours, min, etc. >set @d1 = convert(smalldatetime, floor(convert(float, @d1))) > >-- @d2 - last day of previous month > >set @d2 = dateadd(day, - datepart(day, @d1), @d1) > >-- @d3 - first day of previous month > >set @d3 = dateadd(day, - datepart(day, @d2) + 1, @d2) -- Message posted via SQLMonster.com http://www.sqlmonster.com/Uwe/Forums...neral/200507/1 |