Tentang serial kencan
Nilai yang disimpan di Oracle (42824
) dikenal sebagai serial tanggal, juga digunakan di Microsoft Excel
.
Serial Tanggal mewakili jumlah Hari antara nilai tanggal dan nilai awal yaitu 1899-12-30
Anda dapat Baca lebih lanjut tentang Serial Tanggal di:
- Mengapa 1899-12-30 tanggal nol di Access / SQL Server, bukan 31/12?
- mengubah Nomor Seri Tanggal Excel menjadi Tanggal Biasa
Metode CAST
Dari Microsoft Docs - CAST dan CONVERT (Transact-SQL):
Hanya didukung saat casting dari data karakter ke datetime atau smalldatetime. Ketika data karakter yang mewakili hanya tanggal atau hanya komponen waktu dilemparkan ke tipe data datetime atau smalldatetime, komponen waktu yang tidak ditentukan diatur ke 00:00:00.000, dan komponen tanggal yang tidak ditentukan diatur ke 1900-01-01
Jadi CAST
fungsi mempertimbangkan nilai 1900-01-01
sebagai nilai awal saat casting tanggal. Jadi kita perlu mengurangi 2 hari saat menggunakannya untuk mengonversi Serial Tanggal
Ada 2 cara untuk mengubahnya menjadi saat ini menggunakan SQL Server:
select DATEADD(d,42824,'1899-12-30')
select CAST(36464 - 2 as SmallDateTime)
Konversi implisit SSIS
Juga menurut artikel dokumen Microsoft ini
DBTYPE_DATE (Ini adalah tipe DATE otomatisasi. Secara internal direpresentasikan sebagai ganda.. Seluruh bagian adalah jumlah hari sejak 30 Desember 1899 dan bagian pecahan adalah pecahan hari. Tipe ini memiliki akurasi 1 detik , jadi memiliki skala efektif 0.)
Jadi konversi implisit dalam SSIS pertimbangkan nilai 1899-12-30
sebagai nilai awal saat casting tanggal. Jadi tidak perlu mengurangi 2 hari saat menggunakannya untuk mengonversi Serial Tanggal