簡體   English   中英

SQL 服務器本月最后一天

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM