DAY
返回代表指定日期的天的日期部分的整数。语法
DAY ( date ) 参数
date类型为 datetime 或 smalldatetime 的表达式。返回类型
int注释
此函数等价于 DATEPART(dd, date)。示例
此示例返回从日期 03/12/1998 后的天数。SELECT DAY('03/12/1998') AS 'Day Number'
GO下面是结果集:Day Number
------------
12 在此示例中,以数字表示日期。注意:Microsoft® SQL Server™ 将 0 解释为 01/01/1900。SELECT MONTH(0), DAY(0), YEAR(0)下面是结果集。----- ------ ------
1 1 1900
返回代表指定日期的天的日期部分的整数。语法
DAY ( date ) 参数
date类型为 datetime 或 smalldatetime 的表达式。返回类型
int注释
此函数等价于 DATEPART(dd, date)。示例
此示例返回从日期 03/12/1998 后的天数。SELECT DAY('03/12/1998') AS 'Day Number'
GO下面是结果集:Day Number
------------
12 在此示例中,以数字表示日期。注意:Microsoft® SQL Server™ 将 0 解释为 01/01/1900。SELECT MONTH(0), DAY(0), YEAR(0)下面是结果集。----- ------ ------
1 1 1900
应该是:
select DATEDIFF(dd,getdate(),dateadd(mm,1,getdate()))
CREATE FUNCTION retunday(@rq datetime)
RETURNS int AS
BEGIN
declare @rq1 int
select @rq1=DATEDIFF(dd,@rq,dateadd(mm,1,@rq))
return @rq1
END
用法:
select 库名.dbo.retunday('2002-6-6')
Declare @YearMonth char(6)
Declare @BeginDay char(10)
select @YearMonth='2002-06'
select @BeginDay=@YearMonth+'-01'
select datediff(day,@Beginday,dateadd(month,1,@BeginDay))
这种方法更实用,通过dateserial函数可以由分开的年月日得到一个日期,这里巧妙的用了0来使得日期向上一个月的最后一天转换
从面用DAY函数来得到时间的日,
如testyear=2002
testmonth=6
则7月0号等于6月30号
所以lastday=30