sqlserver求月初,sql月初第一天

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;

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))

怎么用sql语句查找从月初到月末的数据

要找出月初到月末的数据,那只要找出本月范围即可,SQL提供了DateDiff来解决这个问题:

DateDiff 函数:返回两个日期之间的时间间隔。

语法

DateDiff(interval, date1, date2 [,firstdayofweek[, firstweekofyear]])

示例如下:

select * from table where datediff(month,getdate(), date_colName)=0

如果当前日期getdate() 和表中的字段date_colName 相等,即为本月。


当前名称:sqlserver求月初,sql月初第一天
分享链接:http://azwzsj.com/article/dscgdhs.html