SQL如何将yyyy-MM-dd格式日期转换为Tue-05-Oct格式?
SQL日期格式转换解决方案
不同数据库的日期格式化函数语法存在差异,以下是主流数据库的实现方式,直接替换原有SELECT date.birthday as object语句中的字段部分即可。如果你是在HTML模板中嵌入动态SQL,转换逻辑全部在SQL侧完成,无需调整HTML相关代码。
MySQL
使用DATE_FORMAT函数,对应格式符:%a代表英文缩写星期、%d代表两位日期、%b代表英文缩写月份:
-- 若birthday本身为日期类型 SELECT DATE_FORMAT(date.birthday, '%a-%d-%b') AS object FROM 你的表名; -- 若birthday为字符串存储的'2021-10-05'格式,先转日期再格式化 SELECT DATE_FORMAT(STR_TO_DATE(date.birthday, '%Y-%m-%d'), '%a-%d-%b') AS object FROM 你的表名;
SQL Server
2012及以上版本直接使用FORMAT函数:
SELECT FORMAT(date.birthday, 'ddd-dd-MMM') AS object FROM 你的表名;
低版本可通过CONVERT配合字符串拼接实现:
SELECT LEFT(DATENAME(WEEKDAY, date.birthday),3) + '-' + RIGHT('0'+CAST(DAY(date.birthday) AS VARCHAR),2) + '-' + LEFT(DATENAME(MONTH, date.birthday),3) AS object FROM 你的表名;
Oracle
使用TO_CHAR函数,注意指定语言参数避免输出中文缩写:
SELECT TO_CHAR(date.birthday, 'DY-DD-MON', 'NLS_DATE_LANGUAGE = AMERICAN') AS object FROM 你的表名;
PostgreSQL
使用TO_CHAR函数:
SELECT TO_CHAR(date.birthday, 'Dy-dd-Mon') AS object FROM 你的表名;
内容的提问来源于stack exchange,提问作者gougou1714
相关产品推荐
相关产品推荐

