作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有经过的天数,我想使用大查询 SQL 找出特定日期间隔的月份和年份
For eg: I have the following fields : date_today as DATE , day_passed as INTEGER
date_today = '2018-01-22'
day_passed = 32
从今天开始,我想使用 day_passed 列值创建一个如下所示的新列
month_joined = '2017-12'
挑战:2 月(28 日或 29 日)、30、31 中的月份可能有不同的日子
解决这个问题的最佳方法是什么?
最佳答案
在 tsql 中你可以使用这个查询,我建议你修改成一个函数。
declare @date nvarchar(20) = '2018-01-22'
declare @interval int = -32
declare @newDate datetime = DATEADD(DAY,@interval,CAST(@date as datetime))
select cast(year(@newDate) as nvarchar(4)) +'-'+ cast(month(@newDate) as nvarchar(2)) as 'month_joined'
在 tsql 中创建一个函数:
CREATE FUNCTION YearMonthConvert(
@Date datetime,
@Interval int = 0)
RETURNS NVARCHAR(10)
AS
BEGIN
DECLARE @newDate datetime = DATEADD(DAY,@Interval,CAST(@Date as datetime))
RETURN cast(year(@newDate) as nvarchar(4)) +'-'+ cast(month(@newDate) as nvarchar(2))
END;
那么可以这样调用:
select dbo.yearmonthconvert('2018-01-22',-32)
我相信 mysql 语法如下 - 没有完成 mysql 所以如果有人想在评论中纠正我,将不胜感激。
set @date = '2018-01-22';
set @interval = -32;
set month_joined = DATE_ADD(@date, INTERVAL @interval DAY);
关于mysql - 如何从sql中经过的天数中查找年份和月份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48378062/
我是一名优秀的程序员,十分优秀!