gpt4 book ai didi

sql - 从字符串转换日期和/或时间时转换失败(返回月份的最后一天)

转载 作者:行者123 更新时间:2023-12-04 16:11:09 26 4
gpt4 key购买 nike

DECLARE @date VARCHAR = '201809';  


-- Month and Year

DECLARE @mes VARCHAR(2), @ano VARCHAR(4)
SET @mes = SUBSTRING(@date, 5, 6)
SET @ano = SUBSTRING(@date, 1, 4)

--Return last day of Month

SELECT DAY(DATEADD(d,-1,DATEADD(M,1,CONVERT(DATETIME,@ano + @mes + '01'))))

最佳答案

您没有声明 @date 的 varchar 的大小。所以基本上@date只包含字符2

DECLARE @date VARCHAR(6) = '201809';  


-- Month and Year

DECLARE @mes VARCHAR(2), @ano VARCHAR(4)
SET @mes = SUBSTRING(@date, 5, 6)
SET @ano = SUBSTRING(@date, 1, 4)

--Return last day of Month

SELECT DAY(DATEADD(d,-1,DATEADD(M,1,CONVERT(DATETIME,@ano + @mes + '01'))))

如果您使用的是 SQL Server 2012 或更高版本,则只需

DECLARE @date VARCHAR(6) = '201809';  
SELECT DAY(EOMONTH(CONVERT(DATETIME, @date + '01', 112)))

关于sql - 从字符串转换日期和/或时间时转换失败(返回月份的最后一天),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53097871/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com