『壹』 用sql語句 如何得到每月的最後一天的值
select convert(char(10),dateadd(d,-1,convert(char(7),dateadd(m,1,getdate()),120)+'-01'),120)
『貳』 用SQL獲取某個某年某個月份的最後一天的日期
/*
思路:首先把某日期的月份加一,再把結果的日期減一
*/
DECLARE @Date AS DATETIME
DECLARE @DateChar AS nVarChar(19)
--給日期賦值
SET @Date = GetDate()
--返回你需要的
SET @DateChar = CONVERT(Char(8), @Date, 120) + '01 00:00:00'
SELECT DATEADD(d, -1, DATEADD(m, 1, CAST(@DateChar AS DATETIME)))
『叄』 在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
『肆』 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(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 去年的最後一天
『陸』 用SQL取每個月的最後一天,怎麼寫
DateSerial(Year(GetDate()), Month(GetDate())+1, 0)
僅限於SQL Server 資料庫悄悔慎前攜,
非SQL Server 資料庫請參啟敬考資料庫系統函數。
『柒』 sql server2000中如何截取每個月最後一天的數據
select dateadd(mm,datediff(mm,-1,dateCol),-1) from table
這樣能找到你表裡的數據是最後一天的日期查出來,在把日期Exists裡面的記錄過濾出來,Group by 一下就OK了。
『捌』 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)
『玖』 在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)