sqlserver,Make_Date列是2024-12-12,我希望从Make_Date列提取年、月、年月,并且数据类型是日期格式,千万不要是文本格式或时间格式,只能是日期格式的
时间: 2024-09-12 14:17:19 浏览: 86
在SQL Server中,你可以使用YEAR()
, MONTH()
, 和 DATEFROMPARTS()
函数来分别提取日期的年份、月份以及生成年月的日期类型数据。
以下是如何实现的示例SQL语句:
-- 假设Make_Date是已经存在的日期列
DECLARE @Make_Date DATE = '2024-12-12';
-- 提取年份
DECLARE @Year INT = YEAR(@Make_Date);
-- 提取月份
DECLARE @Month INT = MONTH(@Make_Date);
-- 使用DATEFROMPARTS函数生成年月的日期类型数据
-- 注意:DATEFROMPARTS会默认生成该月的第一天
DECLARE @YearMonth DATE = DATEFROMPARTS(@Year, @Month, 1);
-- 显示结果
SELECT @Year AS Year, @Month AS Month, @YearMonth AS YearMonth;
这段代码首先声明了一个日期变量@Make_Date
并赋值为'2024-12-12'。然后分别声明了年、月变量并使用相应的SQL Server函数提取了年份和月份。对于年月的提取,我们使用DATEFROMPARTS()
函数创建了一个新的日期类型数据,其中年份和月份使用的是从Make_Date
列提取的值,而日部分使用的是1,表示该月的第一天。这样可以确保结果是日期类型,而不是文本或时间格式。