Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Konwertuj z DateTime na INT

EDYCJA:Rzutowanie na float/int nie działa już w najnowszych wersjach SQL Server. Zamiast tego użyj następującego:

select datediff(day, '1899-12-30T00:00:00', my_date_field)
from mytable

Pamiętaj, że data ciągu powinna mieć jednoznaczny format daty, aby nie wpływały na nią ustawienia regionalne serwera.

W starszych wersjach SQL Server można dokonać konwersji z DateTime na Integer przez rzutowanie na float, a następnie na int:

select cast(cast(my_date_field as float) as int)
from mytable

(Uwaga:nie możesz rzutować bezpośrednio na int, ponieważ MSSQL zaokrągla wartość w górę, jeśli minęło południe!)

Jeśli w Twoich danych występuje przesunięcie, możesz oczywiście dodać lub odjąć to od wyniku

Możesz przekonwertować w innym kierunku, rzucając prosto do tyłu:

select cast(my_integer_date as datetime)
from mytable


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak sprawdzić wyniki zadania pakietu SSIS po jego zakończeniu?

  2. Jak mogę przekonwertować tiki na format daty?

  3. Opanowanie wykorzystania list stop z wyszukiwaniem pełnotekstowym serwera SQL Server (FTS)

  4. Tworzenie indeksu na zmiennej tabeli

  5. Zapytanie SQL, aby podzielić dane kolumny na wiersze