sql >> Databasteknik >  >> RDS >> Sqlserver

Konvertera från DateTime till INT

EDIT:Casta till en float/int fungerar inte längre i de senaste versionerna av SQL Server. Använd följande istället:

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

Observera att strängdatumet bör vara i ett entydigt datumformat så att det inte påverkas av serverns regionala inställningar.

I äldre versioner av SQL Server kan du konvertera från ett DateTime till ett heltal genom att casta till en float och sedan till en int:

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

(OBS:Du kan inte kasta direkt till en int, eftersom MSSQL avrundar värdet uppåt om du har passerat mitt på dagen!)

Om det finns en offset i dina data kan du självklart lägga till eller subtrahera detta från resultatet

Du kan konvertera åt andra hållet genom att kasta rakt bakåt:

select cast(my_integer_date as datetime)
from mytable


  1. Upprätthålla ett grupperat löpande MAX (eller MIN)

  2. Hur man ansluter MySQL-databas med PHP-webbplats

  3. Tabelluppslagningar i SortCL-kompatibla IRI-jobb

  4. PostgreSQL:Skapa index för boolesk kolumn