sql-server - SQL 将专有数字日期转换为 mmddyy
问题描述
我在 SQL Server 表中有一个 5 位数字的日期列,我相信它是基于自 1980 年 1 月 1 日以来的天数。我正在尝试将其转换为mm/dd/yyyy
日期。我也使用 Crystal Reports 和 CR 使用它来转换它。
Date ({yes01ph.drawer_dt} + 29221)
这里有一些转换供参考。
13920 = 02/10/2018
13921 = 02/11/2018
13922 = 02/12/2018
etc...
感谢您提供任何帮助。
解决方案
用于DATEADD()
将数字添加到日期1980-01-01
,然后将其转换为所需的格式,dd/mm/yyyy
.
询问
declare @t as table(
[num] int
);
insert into @t([num])
select 13920 union all
select 13921 union all
select 13922 union all
select 13923 union all
select 13924;
declare @base as date = '1980-01-01';
select convert(varchar(10), dateadd(day, [num], @base), 101) as [date]
from @t;
Find a demo here
推荐阅读
- sql - Postgres 多对一关系连接多个表并选择所有行,前提是至少有一行与某些条件匹配
- sockets - 使用 Poco 的安全套接字
- c# - Oracle 视图 - EF Core 3.1 - 无法跟踪“实体”类型的实例,因为它没有主键
- python - 在 Kivy 中显示背景图像
- android - kotlinCompilerVersion 已弃用
- node.js - 使用 SocketIo 在聊天中阅读新消息
- python - 当 input() 用作函数参数时,为什么它在 main() 之前运行
- javascript - 使用eval反应js表单输入?
- conditional-statements - 何时使用“!=”和“不是”
- javascript - 将多个相似对象的javascript数组转换为具有重复值的较小数组作为子数组