當前位置:首頁 » 編程語言 » sql月最後一天

sql月最後一天

發布時間: 2025-01-15 14:59:45

A. sql獲取月份中的最後一天

獲取月份最後一天的方法

本文討論如何利用 SQL 獲取月份中的最後一天,適用於 Oracle、MySQL、Microsoft SQL Server、PostgreSQL 及 SQLite 資料庫

Oracle 提供 LAST_DAY() 函數,計算給定日期所在月份的最後一天。

MySQL 和 MariaDB 也採用 LAST_DAY() 函數,實現相同功能。

Microsoft SQL Server 使用 EOMONTH() 函數,返回包含指定日期所在月份的最後一天。

EOMONTH() 可選參數允許增加或減少指定的月份數。

PostgreSQL 缺乏直接獲取月份最後一天的函數,需通過 DATE_TRUNC() 函數截斷日期到月份,再調整日期至最後一天。

SQLite 採用 DATE() 函數,同樣通過 'start of month'、'+1 month' 和 '-1 day' 等步驟計算最後一天。

B. 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)

C. 用SQL取每個月的最後一天,怎麼寫

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

D. SQL 本月最後一天,只要日期

思路:本月的最後一天,可以使用函數【dateadd】,在下月1號的基礎上減去一天即可獲得本月最後一天

例如:求2015年12月的最後一天

declare@masvarchar(7)
set@m='2015-12'
selectdateadd(dd,-1,dateadd(m,1,@m+'-1'))

輸出結果為:

2015-12-3100:00:00.000


只要日期的話,應將日期類型轉換格式為字元類型

declare@masvarchar(7)
set@m='2015-12'
selectconvert(varchar(10),dateadd(dd,-1,dateadd(m,1,@m+'-1')),120)

輸出結果:

2015-12-31

E. 用SQL取每個月的最後一天,怎麼寫

DateSerial(Year(GetDate()), Month(GetDate())+1, 0)
僅限於SQL Server 資料庫,
非SQL Server 資料庫請參考資料庫系統函數。

熱點內容
python數據分析基礎pdf 發布:2025-02-15 18:44:55 瀏覽:622
網站在線客服系統如何配置 發布:2025-02-15 18:13:44 瀏覽:372
mc伺服器地址一般保存在哪裡 發布:2025-02-15 18:05:51 瀏覽:506
mysqljson存儲數據 發布:2025-02-15 17:57:20 瀏覽:675
文件夾打開多個窗口 發布:2025-02-15 17:53:55 瀏覽:656
重盟冰雪腳本 發布:2025-02-15 17:50:04 瀏覽:115
蘋果4s忘記密碼怎麼解鎖 發布:2025-02-15 17:48:53 瀏覽:504
t3標准版怎麼修改伺服器ip 發布:2025-02-15 17:48:51 瀏覽:876
php空文件 發布:2025-02-15 17:47:48 瀏覽:107
centos7升級php7 發布:2025-02-15 17:30:47 瀏覽:658