存储在Oracle(
42824)中的值称为日期序列,它也用于中
Microsoft Excel。
日期序列表示日期值和初始值之间的天数,即
1899-12-30CAST方法
从Microsoft Docs-CAST和CONVERT(Transact-SQL):
仅当从字符数据转换为datetime或smalldatetime时才受支持。将仅表示日期或仅时间部分的字符数据转换为datetime或smalldatetime数据类型时,未指定的时间部分设置为00:00:00.000,未指定的日期部分设置为1900-01-01
因此,
CAST函数
1900-01-01在转换日期时会将值视为初始值。因此,在使用它转换日期序列时,我们需要减去2天
有两种使用SQL Server将其转换为日期的方法:
SSIS隐式转换select DATEADD(d,42824,'1899-12-30')select CAST(36464 - 2 as SmallDateTime)
同样根据此Microsoft文档文章
DBTYPE_DATE(这是自动化的DATE类型。在内部被表示为双精度型。整体部分是自1899年12月30日以来的天数,小数部分是一天的一部分。这种类型的精度为1秒,因此有效标度为0。)
因此,SSIS中的隐式转换在
1899-12-30转换日期时将值视为初始值。因此,使用它转换日期序列时无需减去2天
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)