sql取當月第一天
A. sql server 怎麼查詢當月第一天和最後一天,下月第一天與下月最後一天
selectcast(dateadd(day,-day(getdate())+1,getdate())asdate)當月第一天,
cast(dateadd(day,-1,datename(year,dateadd(month,1,getdate()))+datename(month,dateadd(month,1,getdate()))+'01')asdate)當月最後一天,
cast(datename(year,dateadd(month,1,getdate()))+datename(month,dateadd(month,1,getdate()))+'01'asdate)下月第一天,
cast(dateadd(day,-1,datename(year,dateadd(month,2,getdate()))+datename(month,dateadd(month,2,getdate()))+'01')asdate)下月最後一天
B. SQL中,怎麼取當月第一天。
如:給定的年月格式為20157,代表2015年7月。
取某月第一天:
SELECTCAST((LEFT('20157',4)+'-'+SUBSTRING('20157',5,LEN('20157'))+'-'+'01')ASDATETIME)
結果:
C. sql如何獲取日期月份的第一天
如:給定的年月格式為20157,代表2015年7月。
取某月第一天:
SELECTCAST((LEFT('20157',4)+'-'+SUBSTRING('20157',5,LEN('20157'))+'-'+'01')ASDATETIME)
結果:
D. 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
(4)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
E. 使用SQL語句取相關日期(當月天數,當月第一天,當月最後一天,本年最後一天,當月第一個星期)
--當月天數
select day(dateadd(ms,-3,DATEADD(m, DATEDIFF(m,0,getdate())+1,0)))
---當月第一天
select dateadd(d,-day(getdate())+1,getdate())
---當月最後一天
select dateadd(d,-day(getdate()),dateadd(m,1,getdate()))
--本年最後一天
select dateadd(d,-day(getdate()),dateadd(m,12,getdate()))
--當月第一個星期一
SELECT DATEADD(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 如何取當季最後一個月的第一天
oracle(本季度第一天+兩個月=本季度最後一個月第一天)
SELECT to_char(add_months(TRUNC(SYSDATE, 'Q'), 2), 'YYYY-MM-DD') FROM al;
sqlserver:還是先找到當前季度的第一天然後加兩個月
Select DATEADD(mm,2,DATEADD(qq, DATEDIFF(qq,0,getdate()), 0))
mysql:想不出來,mysql的函數很多都是關於天的,而且太久沒用,差不多都還給書本了。
其實也可以用case when來寫,首先判斷當前時間是第幾季度,然後用case when來寫,等於1就是3.1,等於2就是6.1,以此類推,這個應該不算很麻煩,判斷三次,就可以了。
H. sql 獲取當前月的第一天
DATEDIFF(mm,0,getdate())用來計算出「0」和當前日期所相差的月份數,比如說相差10個月。
DATEADD (mm,x,0)
在0日期的基礎上,加上x個月。
那麼就相當於把去掉了日期,只留下了月份,也就是當前月份了。沒有日期,也就是第一天的0點了。