You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle/MySQL中不使用to_date/to_char函数生成日期字段

需求说明

需要将day、month、year三列数据拼接成DD-MM-YYYY格式的日期字符串,禁止使用to_date或to_char函数。

输入数据

daymonthyear
121995
231998
562020

期望输出

date
01-02-1995
02-03-1998
05-06-2020

解决方案

针对不同数据库,可通过字符串补位+拼接的方式实现需求:

MySQL/MariaDB

使用LPAD函数给日、月补前导零,再用CONCAT组合成目标格式:

SELECT CONCAT(
    LPAD(day, 2, '0'),
    '-',
    LPAD(month, 2, '0'),
    '-',
    year
) AS date
FROM your_table_name;

SQL Server

用RIGHT函数拼接前导零实现补位,再组合字符串:

SELECT RIGHT('0' + CAST(day AS VARCHAR(2)), 2) + '-' +
       RIGHT('0' + CAST(month AS VARCHAR(2)), 2) + '-' +
       CAST(year AS VARCHAR(4)) AS date
FROM your_table_name;

Oracle

用LPAD函数补零,通过||操作符拼接字符串:

SELECT LPAD(day, 2, '0') || '-' ||
       LPAD(month, 2, '0') || '-' ||
       year AS date
FROM your_table_name;

内容的提问来源于stack exchange,提问作者indianbro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 20:20:26