A. sql 獲取當前月的第一天
DATEDIFF(mm,0,getdate())用來計算出「0」和當前日期所相差的月份數,比如說相差10個月。
DATEADD (mm,x,0)
在0日期的基礎上,加上x個月。
那麼就相當於把去掉了日期,只留下了月份,也就是當前月份了。沒有日期,也就是第一天的0點了。
B. sql如何獲取日期月份的第一天
如:給定的年月格式為20157,代表2015年7月。
取某月第一天:
SELECTCAST((LEFT('20157',4)+'-'+SUBSTRING('20157',5,LEN('20157'))+'-'+'01')ASDATETIME)
結果:
C. SQL Server 怎麼獲得本周內: 周六為第一天 周五為第最後一天
SET DATEFIRST { number | @number_var }
SQL Server 默認一周的第一天是 星期天
1> SELECT
2> GETDATE(),
3> '周中第幾天' AS '日期部分',
4> DATEPART(dw, GETDATE()) AS [數值]
5> go
日期部分 數值
----------------------- ---------- -----------
2013-04-20 10:06:54.647 周中第幾天 7
(1 行受影響)
這里設置 星期六 為 每周的第一天。
SET DATEFIRST 6
GO
1> SELECT
2> GETDATE(),
3> '周中第幾天' AS '日期部分',
4> DATEPART(dw, GETDATE()) AS [數值]
5> go
日期部分 數值
----------------------- ---------- -----------
2013-04-20 10:07:56.857 周中第幾天 1
(1 行受影響)
D. sql如何取某年某月的第一天和最後一天
declare @year int;
declare @month int;
set @year = 2016;
set @month = 11;
--第一天
select cast( @year as nvarchar(4) ) +'-' + right( cast( ( 100 + @month) as nvarchar(3)),2 ) + '-01'
--最後一天
select DATEADD(day,-1, ( DATEADD( month, 1, ( cast( @year as nvarchar(4) ) +'-' + right( cast( ( 100 + @month ) as nvarchar(3)),2 ) + '-01'))))
你再看看有簡單寫法嗎
E. 使用SQL語句取相關日期(當月天數,當月第一天,當月最後一天,本年最後一天,當月第一個星期)
當月天數
selectday(dateadd(ms,-3,DATEADD(m,DATEDIFF(m,0,getdate())+1,0)))
當月第一天
selectdateadd(d,-day(getdate())+1,getdate())
當月最後一天
selectdateadd(d,-day(getdate()),dateadd(m,1,getdate()))
本年最後一天
selectdateadd(d,-day(getdate()),dateadd(m,12,getdate()))
當月第一個星期一
SELECTDATEADD(wk,DATEDIFF(wk,'',DATEADD(dd,6-DAY(getdate()),getdate())),'')
F. sql 語句 怎麼獲取指定月的第一天和最後一天
first_day()得到一個月中的第一天:如first_day(to_date('2008-5-22','yyyy-mm-dd')) 結果:2008-5-1
last_day()得到一個月最後的一天:如:last_day(to_date('2008-5-22','yyyy-mm-dd')) 結果:2008-5-31 ;
G. 獲取本月、本季、本年第一天和最後一天等等sql(sql server)
轉自: http://blog.itpub.net/183473/viewspace-723253
--DATEDIFF ( datepart , startdate , enddate )
--DATEDIFF函數計算兩個日期之間的小時、天、周、月、年等時間間隔總數
--DATEADD ( datepart , number, date )
--DATEADD函數計算一個日期通過給時間間隔加減來獲得一個新的日期
--計算一個月第一天
SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
--本周的星期一,這里我是用周(wk)的時間間隔來計算哪一天是本周的星期一。
SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)
--一年的第一天,現在用年(yy)的時間間隔來顯示這一年的第一天。
SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
--季度的第一天,假如你要計算這個季度的第一天,這個例子告訴你該如何做。
SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)
--上個月的最後一天,這是一個計算上個月最後一天的例子。它通過從一個月的最後一天這個例子上減去3毫秒來獲得。有一點要記住,在Sql Server中時間是精確到3毫秒。這就是為什麼我需要減去3毫秒來獲得我要的日期和時間。
SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))
--去年的最後一天,連接上面的例子,為了要得到去年的最後一天,你需要在今年的第一天上減去3毫秒。
SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))
--本月的最後一天,現在,為了獲得本月的最後一天,我需要稍微修改一下獲得上個月的最後一天的語句。修改需要給用DATEDIFF比較當前日期和「1900-01-01」返回的時間間隔上加1。通過加1個月,我計算出下個月的第一天,然後減去3毫秒,這樣就計算出了這個月的最後一天。這是計算本月最後一天的SQL腳本。
SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))
--本年的最後一天,你現在應該掌握這個的做法,這是計算本年最後一天腳本
SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))
--本月的第一個星期一,好了,現在是最後一個例子。這里我要計算這個月的第一個星期一。這是計算的腳本。
SELECT DATEADD(wk, DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())), 0)
--a. 本月的第一天
select dateadd(mm, datediff(mm,0,getdate()), 0) AS 本月的第一天
--b. 本月的最後一天
select dateadd(ms,-3,dateadd(mm, datediff(mm,0,getdate())+1, 0)) AS 本月的最後一天
--c. 上個月的最後一天
select dateadd(ms,-3,dateadd(mm, datediff(mm,0,getdate()), 0)) AS 上個月的最後一天
--d. 本周的星期一
select dateadd(wk, datediff(wk,0,getdate()), 0) AS 本周的星期一
--e. 本季度的第一天
select dateadd(qq, datediff(qq,0,getdate()), 0) AS 本季度的第一天
--f. 本季度的最後一天
select DATEADD(ms,-3,dateadd(qq, datediff(qq,0,getdate())+1, 0)) AS 本季度的最後一天
--g. 本月的第一個星期一
select dateadd(wk, datediff(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())), 0) AS 本月的第一個星期一
--h. 本年的第一天
select dateadd(yy, datediff(yy,0,getdate()), 0) AS 本年的第一天
--i. 本年的最後一天
select dateadd(ms,-3,dateadd(yy, datediff(yy,0,getdate())+1, 0)) AS 本年的最後一天
--f. 去年的最後一天
select dateadd(ms,-3,dateadd(yy, datediff(yy,0,getdate()), 0)) AS 去年的最後一天
H. SQL中,怎麼取當月第一天。
如:給定的年月格式為20157,代表2015年7月。
取某月第一天:
SELECTCAST((LEFT('20157',4)+'-'+SUBSTRING('20157',5,LEN('20157'))+'-'+'01')ASDATETIME)
結果:
I. sql如何取某年某月的第一天和最後一天
SELECT CAST((LEFT('20093',4)+'-'+SUBSTRING('20093',5,LEN('20093'))+'-'+'01') AS DATETIME)--第一天
SELECT DATEADD(DAY,-1,DATEADD(MONTH,1,CAST((LEFT('20093',4)+'-'+SUBSTRING('20093',5,LEN('20093'))+'-'+'01') AS DATETIME)))--最後一天
原理:第一天肯定是1號拉,最後一天是下個月第一天減一天。
本月第一天
SELECT dateadd(ms,-1,DATEADD(mm, DATEDIFF(m,0,getdate()), 0)) as mouthlastdate
下月第一天:
SELECT dateadd(ms,-1,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0)) as mouthlastdate
下下月第一天:
SELECT dateadd(ms,-1,DATEADD(mm, DATEDIFF(m,0,getdate())+2, 0)) as mouthlastdate
(9)sql日期第一天怎麼獲得擴展閱讀
sqlserver 時間格式函數詳細
--getdate 獲取當前時間
select getdate()
--dateadd 原有時間加: 2013-02-17 13:20:16 此時間加12個月
select dateadd(MONTH,12,'2013-02-17 13:20:16') --返回:2014-02-17 13:20:16.000 (參數month可以改為 day,year等日期加相應的值)
--datediff 兩個時間的差 (後面-前面=返回值)
select datediff(day,'2013-02-01','2013-02-18') --返回:17 (參數day可以改為 month,year等日期加相應的值)
--datepart 獲取日期的某個部分整數
select DATEPART(month, '2013-2-17') --返回 2 (參數month可以改為 day,year等日期加相應的值)
--datename 獲取指定部位的字元串
select datename(weekday, '2013-2-17') --返回 星期日 (參數weekday可以改為 day,year等日期加相應的值)
--day(), month(),year() 獲取指定部位的字元串
select day('2013-2-15') --返回15
J. SQL如何獲得本季度第一天,一年的第一天,本月的最後一天
你好,以下是獲取年,季度,天日期的所有方式:
DECLARE @dt datetime
SET @dt=GETDATE()
DECLARE @number int
SET @number=3
--1.指定日期該年的第一天或最後一天
--A. 年的第一天
SELECT CONVERT(char(5),@dt,120)+'1-1'
--B. 年的最後一天
SELECT CONVERT(char(5),@dt,120)+'12-31'
--2.指定日期所在季度的第一天或最後一天
--A. 季度的第一天
SELECT CONVERT(datetime,
CONVERT(char(8),
DATEADD(Month,
DATEPART(Quarter,@dt)*3-Month(@dt)-2,
@dt),
120)+'1')
--B. 季度的最後一天(CASE判斷法)
SELECT CONVERT(datetime,
CONVERT(char(8),
DATEADD(Month,
DATEPART(Quarter,@dt)*3-Month(@dt),
@dt),
120)
+CASE WHEN DATEPART(Quarter,@dt) in(1,4)
THEN '31'ELSE '30' END)
--C. 季度的最後一天(直接推演算法)
SELECT DATEADD(Day,-1,
CONVERT(char(8),
DATEADD(Month,
1+DATEPART(Quarter,@dt)*3-Month(@dt),
@dt),
120)+'1')
--3.指定日期所在月份的第一天或最後一天
--A. 月的第一天
SELECT CONVERT(datetime,CONVERT(char(8),@dt,120)+'1')
--B. 月的最後一天
SELECT DATEADD(Day,-1,CONVERT(char(8),DATEADD(Month,1,@dt),120)+'1')
--C. 月的最後一天(容易使用的錯誤方法)
SELECT DATEADD(Month,1,DATEADD(Day,-DAY(@dt),@dt))
--4.指定日期所在周的任意一天
SELECT DATEADD(Day,@number-DATEPART(Weekday,@dt),@dt)
--5.指定日期所在周的任意星期幾
--A. 星期天做為一周的第1天
SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-1)%7,@dt)
--B. 星期一做為一周的第1天
SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-2)%7-1,@dt)