如何从完整日期列生成无前置零的年月列
生成不带前置零的年月列解决方案
你当前使用的代码:
CONCAT(YEAR(QUOTE_DATE), '-', MONTH(QUOTE_DATE)) AS Year_Month
在大多数主流数据库(如MySQL、SQL Server、PostgreSQL)中已经可以直接生成不带前置零的年月格式(例如2023-1、2023-2),因为MONTH()函数返回的是整数类型的月份值,不会自动补前导零。
如果在你的数据库环境中这个写法未达到预期,可以根据数据库类型使用以下针对性写法:
MySQL/MariaDB:使用
DATE_FORMAT函数,指定%c作为月份格式符(不带前导零)DATE_FORMAT(QUOTE_DATE, '%Y-%c') AS Year_MonthSQL Server:使用
FORMAT函数,指定yyyy-M格式FORMAT(QUOTE_DATE, 'yyyy-M') AS Year_MonthPostgreSQL:使用
TO_CHAR函数,指定YYYY-M格式TO_CHAR(QUOTE_DATE, 'YYYY-M') AS Year_Month
内容的提问来源于stack exchange,提问作者Eric Jones
相关产品推荐
相关产品推荐

