没有,不过也不用了,就在程序里判断好了
TDate date1; try
{
date1=StrToDateTime(edtextyearmonth+"/31");.//edtextyearmonth为年和月
ShowMessage("31天")
}
catch(...)
{
try
{
date1=StrToDateTime(edtextyearmonth+"/30");.//edtextyearmonth为年和月
ShowMessage("30天")
}
catch(...)
{
try
{
date1=StrToDateTime(edtextyearmonth+"/29");.//edtextyearmonth为年和月
ShowMessage("29天")
}
catch(...)
{
try
{
date1=StrToDateTime(edtextyearmonth+"/29");.//edtextyearmonth为年和月
ShowMessage("29天")
}
catch(...)
{
}
}
}
}
}
TDate date1; try
{
date1=StrToDateTime(edtextyearmonth+"/31");.//edtextyearmonth为年和月
ShowMessage("31天")
}
catch(...)
{
try
{
date1=StrToDateTime(edtextyearmonth+"/30");.//edtextyearmonth为年和月
ShowMessage("30天")
}
catch(...)
{
try
{
date1=StrToDateTime(edtextyearmonth+"/29");.//edtextyearmonth为年和月
ShowMessage("29天")
}
catch(...)
{
try
{
date1=StrToDateTime(edtextyearmonth+"/29");.//edtextyearmonth为年和月
ShowMessage("29天")
}
catch(...)
{
}
}
}
}
}
DATEDIFF ( datepart , startdate , enddate )
datepart 参数使用daystartdate 为某年某月的第一天,enddate 为某年某月的下个月(或年)的第一天USE pubs
GO
SELECT DATEDIFF(day, pubdate, getdate()) AS no_of_days
FROM titles
GO
下面这个函数就可以了
CREATE FUNCTION 返回月天数(@YY CHAR(4), @MM CHAR(2))
RETURNS INT
AS
BEGIN
DECLARE @Riqi DATETIME,@I INT
SET @MM=CONVERT(CHAR(2),CONVERT(INT,@MM)+1)
SET @Riqi = dateadd(day,-1,CONVERT(DATETIME,@YY+'-'+@MM+'-01'))
SET @I =CAST(datepart(day,@Riqi) AS INT)
return @I
ENDselect dbo.返回月天数('2003','8') 结果31
select dbo.返回月天数('2003','2') 结果28
RETURNS INT
AS
BEGIN
DECLARE @MyDate smalldatetime
SET @MyDate = CAST(@YY + '-' + @MM + '-01' AS smalldatetime)
RETURN 32 - Day(@MyDate + (32 - Day(@MyDate)))
END
set @年月='200302' --查询2003年2月有多少天
select day(dateadd(month,1,@年月+'01')-1)
returns int
as
begin
return(select day(dateadd(month,1,@年月+'01')-1))
end
go--调用
select dbo.f_getday('200301'),dbo.f_getday('200302')--删除函数
drop function f_getday
declare @年月 varchar(6)
set @年月='200302' --查询2003年2月有多少天
select day(dateadd(month,1,@年月+'01')-1)
DATEDIFF
返回跨两个指定日期的日期和时间边界数。 语法
DATEDIFF ( datepart , startdate , enddate )
例如:求今年2月份有多少天
declare @t smalldatetime
select @t='2003-2-01'
select datediff(day,@t,dateadd(Month,1,@t)) as 该月有
select day(dateadd(day,-1,dateadd(mm,1,'20030201')))
返回某年的天数
------------------------------
select datediff(dd,'2003/5/1','2003/6/1')
返回某月的天数