Byr*_*ock 46 sql t-sql sql-server
我需要在SQL中将日期的最后一天作为日期给出.如果我有一个月的第一天,我可以这样做:
DATEADD(DAY, DATEADD(MONTH,'2009-05-01',1), -1)
Run Code Online (Sandbox Code Playgroud)
但有没有人知道如何推广它所以我可以找到任何给定日期的月份的最后一天?
Mar*_*ith 61
从SQL Server 2012,您可以使用EOMONTH功能.
返回包含指定日期的月份的最后一天,并带有可选的偏移量.
句法
EOMONTH ( start_date [, month_to_add ] )
Run Code Online (Sandbox Code Playgroud)
怎么......我可以找到任何特定日期的月份的最后一天?
SELECT EOMONTH(@SomeGivenDate)
Run Code Online (Sandbox Code Playgroud)
Luk*_*keH 60
这是我的版本.不需要字符串操作或转换,只需要一次调用DATEADD
,YEAR
并且MONTH
函数:
DECLARE @test DATETIME
SET @test = GETDATE() -- or any other date
SELECT DATEADD(month, ((YEAR(@test) - 1900) * 12) + MONTH(@test), -1)
Run Code Online (Sandbox Code Playgroud)
jam*_*raa 13
您可以使用DAY()函数获取日期中的日期:
dateadd(day, -1, dateadd(month, 1, dateadd(day, 1 - day(date), date)))
Run Code Online (Sandbox Code Playgroud)
对于 SQL Server 2012 或更高版本,使用 EOMONTH 获取月份的最后一个日期
SQL查询显示当前月份的结束日期
DECLARE @currentDate DATE = GETDATE()
SELECT EOMONTH (@currentDate) AS CurrentMonthED
Run Code Online (Sandbox Code Playgroud)
SQL查询显示下个月的结束日期
DECLARE @currentDate DATE = GETDATE()
SELECT EOMONTH (@currentDate, 1 ) AS NextMonthED
Run Code Online (Sandbox Code Playgroud)
在 SQL 服务器中工作
Declare @GivenDate datetime
SET @GivenDate = GETDATE()
Select DATEADD(MM,DATEDIFF(MM, 0, @GivenDate),0) --First day of the month
Select DATEADD(MM,DATEDIFF(MM, -1, @GivenDate),-1) --Last day of the month
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
148439 次 |
最近记录: |