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

每月的最後一天數據sql

發布時間: 2022-08-29 06:44:52

sql查詢某年各個月最後一天的記錄

我寫了下面的語句供你參考,涉及到的內容:1、cast() 數據類型轉換2、轉義字元 (''),兩個單引號代表一個單引號3、while 循環4、union all 查詢連接 declare @day int
declare @month int
declare @year int
declare @date_string varchar(20)declare @checktime_start datetime
declare @checktime_end datetimedeclare @sql varchar(2048)set @year = 2009
set @month = 2
set @sql = ''

while(@month<=12)
begin
select @date_string = cast(@year as varchar)+'-'+cast(@month as varchar)+'-'+'01'
set @date_string = cast(@date_string AS DATETIME)
set @checktime_end = dateadd(day,-1,@date_string)
set @checktime_start = dateadd(day,-2,@date_string) --在這個地方寫你要查詢的內容[table]是你的表,[date]是時間列,還有別的條件你自己加

set @sql = @sql + 'select * from [table] where [date] between '''+cast(@checktime_start AS varchar(16))+''' and '''+ cast(@checktime_end AS varchar(16))+ ''' union all '
set @month = @month +1
end

set @sql = @sql + 'select * from [table] where [date] between ''12 30 2009 12:00AM'' and ''12 31 2009 12:00AM'''
--print(@sql)
exec @sql
這個是按你要求只查詢2009年的記錄,假如你要查2005到2009,你在while循環外面再加個對年的循環。

㈡ 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取每個月的最後一天,怎麼寫

Oracle : select last_day(sysdate) from al ;
Mysql : SELECT LAST_DAY('2003-02-05');

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

㈤ 如何在mysql資料庫中取得每月第一天和最後一天之間的數據

1 某一天的所在月的第一天:

select date_add(date_add(last_day('2008-02-01'),interval 1 day),interval -1 month);

某一天的所在月的最後一天:

select last_day('2008-02-01');

2 加在語句中:

select ... where dt between date_add(date_add(last_day('2012-02-01'),interval 1 day),interval -1 month) and last_day('2012-02-01');

㈥ Sql 語句咋么把每月最後一天Select 出來

select * from 表111 A
WHERE NOT EXISTS ( SELECT 1 FROM 表111 B WHERE A.MONTH(交易日期) = B.(交易日期) AND B.DAY(交易日期) > A.DAY(交易日期))
這個可以篩選出表中每個月最後一天的,也就是說,比如2011年5月,表中最大的日期到5月28日,那麼這個會把這天的數據選出來,而不是空(因為實際的最後一天為空)。

我沒有ACCESS環境,您試試這個語法。

㈦ 在sql server 中如何獲取當月最後一天

語句如下:

selectconvert(varchar(10),dateadd(d,-1,convert(varchar(7),dateadd(m,1,getdate()),120)+'-01'),120)

執行結果如圖:

延伸閱讀:

SQL Server CONVERT() 函數

定義和用法

CONVERT() 函數是把日期轉換為新數據類型的通用函數。

CONVERT() 函數可以用不同的格式顯示日期/時間數據。

語法

CONVERT(data_type(length),data_to_be_converted,style)

SQL Server DATEADD() 函數

定義和用法

DATEADD() 函數在日期中添加或減去指定的時間間隔。

語法

DATEADD(datepart,number,date)

㈧ 在sql server當中如何按月查詢數據並且當前月最後一天與上個月最後一天作比較

思路:

1、上月最後一天:需要用當前月的第一天減去一天得到

2、當前月的最後一天:需要使用下月的第一天減去一天得到

3、未說明如何如何作比較,故無法給出示例


declare @LastMonth as varchar(10)--上月最後一天日期

declare @CurMonth as varchar(10)--當前月最後一天日期

select @LastMonth=convert(varchar(10),dateadd(DD,-1,convert(varchar(7),getdate(),120)+'-01'),120),@CurMonth=convert(varchar(10),dateadd(DD,-1,convert(varchar(7),dateadd(mm,1,getdate()),120)+'-01'),120)

select @LastMonth,@CurMonth