dcsimg

Function to get last day for a month

February 22, 2005



>>Script Language and Platform: SQL Server
This script will create a UDF that will show the maximum day for a given date or month that you supply. Format date supplied as parameter should be : "MM/DD/YYYY"; it will produce a single int value. In example if you supplied date like "02/13/2004", the UDF will show you : 28, which means 28 days in february, 2004.

Author: catur bharata


CREATE  FUNCTION last_day (@date DATETIME)
RETURNS INT
AS
BEGIN

DECLARE @n_month INT, @n_date DATETIME, @n_year INT, @l_day INT
DECLARE @i INT

SET @n_month= MONTH(@date)
SET @n_year = YEAR(@date)
SET @i = 1
IF @n_year % 4 = 0
		SET @l_day = 
		(CASE @n_month
		WHEN 1 THEN 31
		WHEN 2 THEN 29
		WHEN 3 THEN 31
		WHEN 4 THEN 30
		WHEN 5 THEN 31
		WHEN 6 THEN 30
		WHEN 7 THEN 31
		WHEN 8 THEN 31
		WHEN 9 THEN 30
		WHEN 10 THEN 31
		WHEN 11 THEN 30
		ELSE 31
		END)

IF @n_year % 4 > 0
		SET @l_day = 
		(CASE @n_month
		WHEN 1 THEN 31
		WHEN 2 THEN 28
		WHEN 3 THEN 31
		WHEN 4 THEN 30
		WHEN 5 THEN 31
		WHEN 6 THEN 30
		WHEN 7 THEN 31
		WHEN 8 THEN 31
		WHEN 9 THEN 30
		WHEN 10 THEN 31
		WHEN 11 THEN 30
		ELSE 31
		END)
RETURN(@l_day)
END

Disclaimer: We hope that the information on these script pages is valuable to you. Your use of the information contained in these pages, however, is at your sole risk. All information on these pages is provided "as -is", without any warranty, whether express or implied, of its accuracy, completeness, or fitness for a particular purpose... Disclaimer Continued


Back to Database Journal Home








The Network for Technology Professionals

Search:

About Internet.com

Legal Notices, Licensing, Permissions, Privacy Policy.
Advertise | Newsletters | E-mail Offers