當前位置:首頁 » 編程語言 » sql獲取月份第一天和最後一天
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql獲取月份第一天和最後一天

發布時間: 2022-08-26 18:51:45

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 ;

❷ sql如何獲取日期月份的第一天

如:給定的年月格式為20157,代表2015年7月。

取某月第一天:

SELECTCAST((LEFT('20157',4)+'-'+SUBSTRING('20157',5,LEN('20157'))+'-'+'01')ASDATETIME)

結果:

❸ 使用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())),'')

❹ 如果給定一個年月,如:201204,怎麼用SQL函數取該月份的第一天和最後一天,顯示如:20120401

oracle 可以寫個函數
CREATE OR REPLACE FUNCTION SF_GETYMD
(
PI_RQ0000 IN VARCHAR2, --日期
PI_BS0000 IN VARCHAR2 --標示 0,1,2
)
RETURN VARCHAR2
AS
LS_RETURN VARCHAR2(8);
BEGIN
IF PI_RQ0000 IS NULL THEN
LS_RETURN := to_char(sysdate,'yyyymmdd');
elsIF PI_BS0000='0' THEN
LS_RETURN := SUBSTR(PI_RQ0000,1,6)||'01';
ELSIF PI_BS0000='1' THEN
LS_RETURN := TO_CHAR(LAST_DAY(TO_DATE(PI_RQ0000,'YYYY-MM')),'YYYYMMDD');
ELSIF PI_BS0000='2' THEN
LS_RETURN := TO_CHAR(last_day(add_months(TO_DATE(PI_RQ0000,'YYYY-MM'),-1)),'YYYYMMDD');
END IF;
RETURN LS_RETURN;
END SF_GETYMD;

❺ 如何用sql獲取上個月的第一天和上個月的最後一天

--上一個月的最後一天sysdate為系統當前時間
SELECTTO_CHAR(LAST_DAY(ADD_MONTHS(SYSDATE,-1)),'yyyy-mm-dd')FROMDUAL;
--上一個月的最後一天
SELECTTO_CHAR(TRUNC(ADD_MONTHS(SYSDATE,-1),'mm'),'yyyy-mm-dd')
FROMDUAL;

❻ sql獲取時間區間內每月第一天和最後一天

如:給定的年月格式為20157,代表2015年7月。

取某月第一天:
SELECT CAST((LEFT('20157',4)+'-'+SUBSTRING('20157',5,LEN('20157'))+'-'+'01') AS DATETIME)

結果:

❼ 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)下月最後一天

❽ sql 如何獲取月份的最後一天

DECLARE@dtdatetime
SET@dt=GETDATE()

DECLARE@numberint
SET@number=3

--1.指定日期該年的第一天或最後一天
--A. 年的第一天
SELECTCONVERT(char(5),@dt,120)+'1-1'

--B. 年的最後一天
SELECTCONVERT(char(5),@dt,120)+'12-31'

--2.指定日期所在季度的第一天或最後一天
--A. 季度的第一天
SELECTCONVERT(datetime,
CONVERT(char(8),
DATEADD(Month,
DATEPART(Quarter,@dt)*3-Month(@dt)-2,
@dt),
120)+'1')

--B. 季度的最後一天(CASE判斷法)
SELECTCONVERT(datetime,
CONVERT(char(8),
DATEADD(Month,
DATEPART(Quarter,@dt)*3-Month(@dt),
@dt),
120)
+CASEWHENDATEPART(Quarter,@dt) in(1,4)
THEN'31'ELSE'30'END)

--C. 季度的最後一天(直接推演算法)
SELECTDATEADD(Day,-1,
CONVERT(char(8),
DATEADD(Month,
1+DATEPART(Quarter,@dt)*3-Month(@dt),
@dt),
120)+'1')

--3.指定日期所在月份的第一天或最後一天
--A. 月的第一天
SELECTCONVERT(datetime,CONVERT(char(8),@dt,120)+'1')

--B. 月的最後一天
SELECTDATEADD(Day,-1,CONVERT(char(8),DATEADD(Month,1,@dt),120)+'1')

--C. 月的最後一天(容易使用的錯誤方法)
SELECTDATEADD(Month,1,DATEADD(Day,-DAY(@dt),@dt))

--4.指定日期所在周的任意一天
SELECTDATEADD(Day,@number-DATEPART(Weekday,@dt),@dt)

--5.指定日期所在周的任意星期幾
--A. 星期天做為一周的第1天
SELECTDATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-1)%7,@dt)

--B. 星期一做為一周的第1天
SELECTDATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-2)%7-1,@dt)

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