可以使用SQL Server系统函数DATEADD实现日期批量加上1年,示例如下:
10年积累的成都做网站、网站设计、外贸营销网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有辽源免费网站建设让你可以放心的选择与我们合作。
--使用DATEADD函数更新time列的值为原时间值加上1年
UPDATE UserList SET time=DATEADD(year,1,time)
关与DATEADD函数,可以查看SQL SERVER教程中的使用方法说明,如下图:
函数代码:
create or replace function func_date( --创建函数名称func_date
p_yyyymmdd number, --定义参数1
p_num number) --定义参数2
return date --返回结果类型为date
as
v_result date; --声明返回结果变量
begin
if p_num=11
then v_result:=trunc(to_date(p_yyyymmdd,'yyyy-mm-dd'),'mm'); --本月初
elsif p_num=12
then v_result:=trunc(to_date(p_yyyymmdd,'yyyy-mm-dd'),'q'); --本季初
elsif p_num=13
then v_result:=trunc(to_date(p_yyyymmdd,'yyyy-mm-dd'),'yyyy'); --本年初
elsif p_num=21
then v_result:=last_day(to_date(p_yyyymmdd,'yyyy-mm-dd')); --本月末
elsif p_num=22
then v_result:=last_day(add_months(trunc(to_date(p_yyyymmdd,'yyyy-mm-dd'),'q'),2)); --本季度末
elsif p_num=23
then v_result:=last_day(add_months(trunc(to_date(p_yyyymmdd,'yyyy-mm-dd'),'yyyy'),11)); --本年末
elsif p_num=31
then v_result:=add_months(trunc(to_date(p_yyyymmdd,'yyyy-mm-dd'),'mm'),-1); --上月初
elsif p_num=32
then v_result:=add_months(trunc(to_date(p_yyyymmdd,'yyyy-mm-dd'),'q'),-3); --上季初
elsif p_num=33
then v_result:=add_months(trunc(to_date(p_yyyymmdd,'yyyy-mm-dd'),'yyyy'),-12); --上年初
elsif p_num=41
then v_result:=trunc(to_date(p_yyyymmdd,'yyyy-mm-dd'),'mm')-1; --上月末
elsif p_num=42
then v_result:=trunc(to_date(p_yyyymmdd,'yyyy-mm-dd'),'q')-1; -- 上季末
elsif p_num=43
then v_result:=trunc(to_date(p_yyyymmdd,'yyyy-mm-dd'),'yyyy')-1; --上年末
else
raise_application_error(-20001,'p_num参数说明不存在!'); --其它参数抛出异常
end if;
return v_result; --返回结果
end func_date;
/
调用函数:
select func_date(20161219,11) from dual;
-- 输入201401
-- 月初时间
select dateadd(day, datediff(day, 0,convert(datetime,'201401'+'01',112)), 0)
-- 月末时间
select dateadd(ss,-1,dateadd(month, datediff(month, -1,convert(datetime,'201401'+'01',112)), 0))
-- 输入2014
-- 年初时间
select dateadd(year, datediff(year, 0,convert(datetime,'2014'+'0101',112)), 0)
-- 年末时间
select dateadd(ss,-1,dateadd(year, datediff(year, 0,convert(datetime,'2014'+'0101',112)), 0))
使用sqlserver中的时间函数:dateAdd(yy,-1,getdate())
sql语句是:
select dateAdd(yy,-1,getdate()).
整数是向前,负数是向后