CREATE FUNCTION NextMonth(@CMonth varchar(7))
RETURNS varchar(10) AS
BEGIN
declare @NMonth varchar(7)
if substring(@CMonth,6,2) ='12'
begin
select @NMonth=cast(substring(@CMonth,1,4) +1 as varchar)+substring(@CMonth,5,1)+'01'
end
else
begin
select @NMonth=substring(@CMonth,1,5)+cast(substring(@CMonth,6,len(@CMonth)) +1 as varchar(10))
end
return @NMonth
END
RETURNS varchar(10) AS
BEGIN
declare @NMonth varchar(7)
if substring(@CMonth,6,2) ='12'
begin
select @NMonth=cast(substring(@CMonth,1,4) +1 as varchar)+substring(@CMonth,5,1)+'01'
end
else
begin
select @NMonth=substring(@CMonth,1,5)+cast(substring(@CMonth,6,len(@CMonth)) +1 as varchar(10))
end
return @NMonth
END
解决方案 »
- 急!一个机器设置IP不能连数据库,而换成另一个IP就可以了。怪事了,咋解决?
- 行转列 问题
- 新人问题:创建视图时,弹出这样的警告(在线等)
- 请教一个小问题!!!!!!!
- 寻求一查询语句的解决方案!在线等急!!!
- 紧急求救,数据库无法附加,错误823!
- sql2005 reporting service 显示 barcode
- sql server 2000 数据库同步中断后恢复的问题
- 问一个奇妙SQL执行语句
- 如何将SQL SERVER 7的数据库导入到SQL SERVER 2000中,能不能实现?十万火急!!!
- MSDE 安装问题, 请各位兄弟帮忙。。。。
- 散分,简单的Msde安装问题,在线等
RETURNS varchar(10) AS
BEGIN
declare @NMonth varchar(7)
if substring(@CMonth,6,2) ='12'
begin
select @NMonth=cast(substring(@CMonth,1,4) +1 as varchar(10))+substring(@CMonth,5,1)+'01'
end
else
begin
select @NMonth=substring(@CMonth,1,5)+cast(substring(@CMonth,6,len(@CMonth)) +1 as varchar(10))
end
return @NMonth
END--调用:
select dbo.NextMonth('2003-12')
select dateadd(month,-24,'2002-12-14')
---------------------^^^减
select dateadd(day,-24,'2002-12-14')
----------------^^^天或year年'如:
DATEADD
在向指定日期加上一段时间的基础上,返回新的 datetime 值。语法
DATEADD ( datepart , number, date ) 参数
datepart是规定应向日期的哪一部分返回新值的参数。下表列出了 Microsoft® SQL Server™ 识别的日期部分和缩写。日期部分 缩写
Year yy, yyyy
quarter qq, q
Month mm, m
dayofyear dy, y
Day dd, d
Week wk, ww
Hour hh
minute mi, n
second ss, s
millisecond ms
number是用来增加 datepart 的值。如果指定一个不是整数的值,则将废弃此值的小数部分。例如,如果为 datepart 指定 day,为 number 指定 1.75,则 date 将增加 1。date是返回 datetime 或 smalldatetime 值或日期格式字符串的表达式。有关指定日期的更多信息,请参见 datetime 和 smalldatetime。 如果您只指定年份的最后两位数字,则小于或等于"两位数年份截止期"配置选项的值的最后两位数字的数字所在世纪与截止年所在世纪相同。大于该选项的值的最后两位数字的数字所在世纪为截止年所在世纪的前一个世纪。例如,如果 two digit year cutoff 为 2049(默认),则 49 被解释为 2049,2050 被解释为 1950。为避免模糊,请使用四位数的年份。返回类型
返回 datetime,但如果 date 参数是 smalldatetime,返回 smalldatetime。示例
此示例打印出 pubs 数据库中标题的时间结构的列表。此时间结构表示当前发布日期加上 21 天。USE pubs
GO
SELECT DATEADD(day, 21, pubdate) AS timeframe
FROM titles
GO下面是结果集:timeframe
---------------------------
Jul 3 1991 12:00AM
Jun 30 1991 12:00AM
Jul 21 1991 12:00AM
Jul 13 1991 12:00AM
Jun 30 1991 12:00AM
Jul 9 1991 12:00AM
Mar 14 1997 5:09PM
Jul 21 1991 12:00AM
Jul 3 1994 12:00AM
Mar 14 1997 5:09PM
Nov 11 1991 12:00AM
Jul 6 1991 12:00AM
Oct 26 1991 12:00AM
Jul 3 1991 12:00AM
Jul 3 1991 12:00AM
Nov 11 1991 12:00AM
Jul 3 1991 12:00AM
Jul 3 1991 12:00AM (18 row(s) affected)