Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Perbedaan konversi implisit aliran data CAST vs ssis

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




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pengembang Oracle SQL:Kegagalan - Tes gagal:Adaptor Jaringan tidak dapat membuat koneksi?

  2. Memperbarui Tabel Oracle dari Excel VBA Macro menggunakan koneksi ODBC

  3. Oracle Pro*C/OCI menginstal handler untuk SIGSEGV/SIGABRT dan teman-teman - mengapa, dan bagaimana cara menonaktifkannya?

  4. Bagaimana cara menghasilkan identitas untuk database Oracle secara otomatis melalui kerangka kerja Entitas?

  5. Matriks Versi yang Didukung Oracle