Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Niejawna różnica konwersji CAST vs ssis przepływu danych

Informacje o seriach dat

Wartość przechowywana w Oracle (42824 ) jest znany jako data serial , jest również używany w Microsoft Excel .

Seria dat reprezentuje liczbę dni między wartością daty a wartością początkową, czyli 1899-12-30

Więcej informacji o seriach dat znajdziesz na:

  • Dlaczego 1899-12-30 jest datą zerową w programie Access/SQL Server zamiast 12/31?
  • przekonwertuj numer seryjny daty Excel na zwykłą datę

Metoda CAST

Z Microsoft Docs — CAST i CONVERT (Transact-SQL):

Obsługiwane tylko podczas rzutowania z danych znakowych na datetime lub smalldatetime. Gdy dane znakowe reprezentujące tylko datę lub tylko składniki czasu są rzutowane na typy danych datetime lub smalldatetime, nieokreślony składnik czasu jest ustawiany na 00:00:00.000, a nieokreślony składnik daty jest ustawiany na 1900-01-01

Więc CAST funkcja uwzględnia wartość 1900-01-01 jako wartość początkowa podczas rzutowania dat. Więc musimy odjąć 2 dni, gdy używamy go do konwersji seriali dat

Istnieją dwa sposoby na przekonwertowanie go na datę za pomocą SQL Server:

select DATEADD(d,42824,'1899-12-30')

select CAST(36464 - 2 as SmallDateTime)

Niejawna konwersja SSIS

Również zgodnie z tym artykułem Microsoft Docs

DBTYPE_DATE (Jest to typ automatyzacji DATE. Jest wewnętrznie reprezentowany jako podwójny.. Cała część to liczba dni od 30 grudnia 1899 r., a część ułamkowa to ułamek dnia. Ten typ ma dokładność 1 sekundy , więc efektywna skala wynosi 0.)

Tak więc niejawna konwersja w SSIS rozważ wartość 1899-12-30 jako wartość początkowa podczas rzutowania dat. Nie ma więc potrzeby odejmowania 2 dni podczas używania go do konwersji serii dat




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CONNECT BY lub zapytania hierarchiczne w RDBMS innych niż Oracle

  2. Agregat Oracle do łączenia ciągów znaków przecinkiem i pisania niestandardowych agregatów

  3. Wykryj, czy wartość zawiera co najmniej jedną cyfrę w Oracle

  4. Jak korzystać z rownum

  5. CRS 11.2.0