[英]SQL Server Last Day of the Month
我有一個 varchar 字段,其中包含這種格式的日期:
YYYY-MM
我需要獲取該月的最后一天並以這種格式獲取結果:
YYYYMMDD
例如:
DECLARE @date VARCHAR(7) = '2019-01'
SELECT REPLACE(@date, '-', '') + RIGHT(@date, 2) AS date
My output is: 20190101
The output I am looking for is: 20190131
使用EOMONTH()
-- 轉換值后:
select eomonth(convert(date, @date + '-01', 23))
如果需要字符串,請使用FORMAT()
或CONVERT()
將值轉換為字符串。
如果 eomonth 在您的 SQL 服務器版本中不可用,請創建 function;
CREATE function [dbo].[LastDayofMonth](@Date datetime)
returns datetime
as
begin
return DATEADD(mi, -1, DATEADD(mm, DATEDIFF(m, 0, @Date) + 1, 0))
end
格式化結果;
DECLARE @Date VARCHAR(7)
SET @Date = '2019-01'
SELECT CONVERT(VARCHAR(8),DBO.LastDayofMonth(CAST(@Date+'-01' as DATETIME)),112)
嘗試這個
Declare @date varchar(25)='2019-01'
Select format(EOMONTH(Cast(Concat(@date,'-01') as date) ), 'yyyyMMdd')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.