sql 語句 日期所在月的第一天,最後一天

2021-06-21 01:13:45 字數 1799 閱讀 9213

2010-08-10 11:17 星期二

月初 月末 sql 語句(日期所在月的第一天,最後一天)

select dateadd(month,datediff(month,'1900-01-01','@bizdatefrom'),'1900-01-01')/*指定日期第一天*/

select dateadd(month,datediff(month,'1900-01-01','@bizdatefrom'),'1900-02-01')/*指定日期下個月第一天*/

select dateadd(year,datediff(year,'1900-01-01','2013-02-23'),'1900-01-01') /*指定日期年第一天*/

select dateadd(year,datediff(year,'1900-01-01','2013-04-23'),'1901-01-01') /*指定日期下一年第一天*/

月初,計算給定日期所在月的第一天

--這個計算的技巧是先計算當前日期到"1900-01-01"的時間間隔數,然後把它加到"1900-01-01"上來獲得特殊的日期,這個技巧可以用---來計算很多不同的日期。

declare 

@date datetime

set @date=getdate()

select dateadd(month,datediff(month,'1900-01-01',@date),'1900-01-01') as '所在月的第一天'

--精簡演算法,根據sql server的時間表示方式可知,'1900-01-01' 可以用0代替

select dateadd(month,datediff(month,0,@date),0) as '所在月的第一天'

--上面兩種演算法精確到天 時分秒均為00:00:00.000

--下面演算法課以保留時分秒

--思路:用給定日期減去月第一天與給定日期差的天數

select dateadd(day,1-datepart(day,@date),@date)

go--月末,計算給定日期所在月的最後一天

declare @date datetime

set @date=getdate()

select dateadd(day,-1,dateadd(month,1+datediff(month,'1900-01-01',@date),'1900-01-01')) as '所在月的最一天'

select dateadd(month,1+datediff(month,'1900-01-01',@date),'1900-01-01')-1 as '所在月的最一天'

--1900-01-01 用0代替

select dateadd(day,-1,dateadd(month,1+datediff(month,0,@date),0)) as '所在月的最一天'

select dateadd(month,1+datediff(month,0,@date),0)-1 as '所在月的最一天'

--思路:與月初計算思路相同

select dateadd(month,datediff(month,'1989-12-31',@date),'1989-12-31') as '所在月的最一天'

--精簡演算法,'1989-12-31' 用-1代替

select dateadd(month,datediff(month,-1,@date),-1) as '所在月的最一天'

--保留時分秒的演算法

select dateadd(day,-1,dateadd(month,1,dateadd(day,1-datepart(day,@date),@date)))

go 

第一天 簡單的sql語句

1.查詢所有的員工的部門名稱 select e.ename as員工,d.dname as部門 from emp e left join dept d on e.deptno d.deptno 2.查詢現有員工都有哪些職位 select distinct job as職位 from emp 3.查詢...

C 中獲取某天所在月的第一天與最後一天

今天同事在c 開發時,按月的時間段進行查詢,在乙個月的第一天與最後一天的判斷有失誤 取得某月或某天所在月的第一天 public static datetime firstdayofmonth datetime datetime 取得某月或某天所在月的最後一天 public static dateti...

日期獲取 得到當前月的第一天,得到當前月的最後一天

dateformat sdf new dateformat yyyy mm dd calendar calendar calendar.getinstance calendar.settime cardbalancereport.getstatisticstime 日期的月份第一天 calendar...