SQL Server中如何用MONTHNAME函数作为EOMONTH查询的别名?
实现指定列别名的SQL查询
静态指定别名(固定日期场景)
如果仅针对2023-01-01这个日期查询,直接将列别名写为January即可,SQL语句如下:
SELECT EOMONTH('2023-01-01') AS January;
执行后会返回结果2023-01-30,对应的列别名为January。
动态生成别名(适配任意日期场景)
如果需要根据输入日期自动生成对应月份名称作为列别名,可使用动态SQL实现(以MySQL为例):
-- 定义目标日期 SET @target_date = '2023-01-01'; -- 获取该日期对应的月份名称 SET @month_alias = MONTHNAME(@target_date); -- 拼接动态查询语句 SET @sql_query = CONCAT('SELECT EOMONTH(', QUOTE(@target_date), ') AS `', @month_alias, '`'); -- 执行动态SQL PREPARE stmt FROM @sql_query; EXECUTE stmt; DEALLOCATE PREPARE stmt;
这种写法会根据@target_date的值自动生成对应月份别名,比如输入2023-02-01时,列别名会变为February,同时返回当月最后一天2023-02-28。
内容的提问来源于stack exchange,提问作者user10888389
相关产品推荐
相关产品推荐

