sql >> Databáze >  >> RDS >> Sqlserver

Převést z DateTime na INT

UPRAVIT:Casting do float/int již v posledních verzích SQL Server nefunguje. Místo toho použijte následující:

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

Všimněte si, že řetězec datum by měl být v jednoznačném formátu data, aby nebyl ovlivněn místním nastavením vašeho serveru.

Ve starších verzích SQL Server můžete převést z DateTime na Integer přetypováním na float a poté na int:

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

(Poznámka:Nemůžete přenášet přímo na int, protože MSSQL zaokrouhluje hodnotu nahoru, pokud jste po půlnoci!)

Pokud je ve vašich datech odchylka, můžete ji samozřejmě přidat nebo odečíst od výsledku

Můžete konvertovat opačným směrem odlitím přímo zpět:

select cast(my_integer_date as datetime)
from mytable


  1. Je možné použít Full Text Search (FTS) s LINQ?

  2. Jednoduché používání funkcí DATEADD, DATEDIFF a DATEPART T-SQL

  3. Jak hláskovat rok při formátování data v Oracle

  4. Konvence pojmenovávání databází od společnosti Microsoft?