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

在Oracle SQL中将特殊5位数字转换为标准日期

1900年基准天数转dd/mm/yyyy日期的解决方法

核心逻辑是:这类数字是以1900年1月1日为起始日的偏移天数,只需以该日期为基础加上对应天数,再格式化输出即可。以下是主流数据库的实现代码:

Oracle

直接基于起始日期做天数加法,再格式化:

-- 单值转换示例
SELECT TO_CHAR(DATE '1900-01-01' + 42946, 'DD/MM/YYYY') AS formatted_date FROM dual;

-- 列转换示例
SELECT TO_CHAR(DATE '1900-01-01' + your_date_column, 'DD/MM/YYYY') AS formatted_date
FROM your_table;

SQL Server

使用DATEADD偏移天数,再通过CONVERT或FORMAT格式化:

-- 用FORMAT示例
SELECT FORMAT(DATEADD(day, 42946, '1900-01-01'), 'dd/MM/yyyy') AS formatted_date;

-- 用CONVERT示例(性能更优)
SELECT CONVERT(varchar, DATEADD(day, 42946, '1900-01-01'), 103) AS formatted_date;

-- 列转换示例
SELECT CONVERT(varchar, DATEADD(day, your_date_column, '1900-01-01'), 103) AS formatted_date
FROM your_table;

MySQL

通过DATE_ADD或直接加INTERVAL偏移天数,再用DATE_FORMAT格式化:

-- 单值转换示例
SELECT DATE_FORMAT(DATE_ADD('1900-01-01', INTERVAL 42946 DAY), '%d/%m/%Y') AS formatted_date;

-- 列转换示例
SELECT DATE_FORMAT('1900-01-01' + INTERVAL your_date_column DAY, '%d/%m/%Y') AS formatted_date
FROM your_table;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 18:30:41