
正文
sqlserver上年末,sql年初到现在的天数
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
怎么将SQLServer数据库中的日期批量加上1年
可以使用SQL Server系统函数DATEADD实现日期批量加上1年,示例如下:
--使用DATEADD函数更新time列的值为原时间值加上1年
UPDATE UserList SET time=DATEADD(year,1,time)
关与DATEADD函数,可以查看SQL SERVER教程中的使用方法说明,如下图:
相关问答
Q1: SQL写函数 输入参数:日期(YYYYMMDD)和下面某一个参数 返回数据:参数说明要返回的日期。
函数代码:
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;
Q2: sqlserver 日期格式转换
-- 输入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))
Q3: SQL Server如何获取日期表示去年的今天
使用sqlserver中的时间函数:dateAdd(yy,-1,getdate())
sql语句是:
select dateAdd(yy,-1,getdate()).
整数是向前,负数是向后







