O datových seriálech
Hodnota uložená v Oracle (42824
) je známý jako date serial , používá se také v Microsoft Excel
.
Date Serial představuje počet dní mezi hodnotou data a počáteční hodnotou, která je 1899-12-30
Další informace o datech si můžete přečíst na adrese:
- Proč je 1899-12-30 nulovým datem v Access / SQL Server místo 12/31?
- převést sériové číslo data aplikace Excel na běžné datum
Metoda CAST
Z Microsoft Docs – CAST a CONVERT (Transact-SQL):
Podporováno pouze při přetypování z dat znaků do datetime nebo smalldatetime. Když jsou znaková data, která představují pouze datum nebo pouze časové složky, přetypována na datové typy datetime nebo smalldatetime, nespecifikovaná časová složka je nastavena na 00:00:00.000 a nespecifikovaná složka data je nastavena na 1900-01-01
Takže CAST
funkce zvážit hodnotu 1900-01-01
jako počáteční hodnotu při obsazení dat. Takže musíme odečíst 2 dny, když je použijeme k převodu datových pořadů
Existují 2 způsoby, jak jej převést na datum pomocí SQL Server:
select DATEADD(d,42824,'1899-12-30')
select CAST(36464 - 2 as SmallDateTime)
Implicitní konverze SSIS
Také podle tohoto článku Microsoft docs
DBTYPE_DATE (Toto je automatizační typ DATE. Interně je reprezentován jako double.. Celá část je počet dní od 30. prosince 1899 a zlomková část je zlomek dne. Tento typ má přesnost 1 sekundy , takže má efektivní stupnici 0.)
Takže implicitní převod v SSIS zvažte hodnotu 1899-12-30
jako počáteční hodnotu při obsazení dat. Není tedy potřeba odečítat 2 dny, když jej použijete k převodu datových pořadů