sql >> Database teknologi >  >> RDS >> Sqlserver

Konverter fra DateTime til INT

EDIT:Casting til en float/int virker ikke længere i nyere versioner af SQL Server. Brug i stedet følgende:

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

Bemærk, at strengdatoen skal være i et utvetydigt datoformat, så den ikke påvirkes af din servers regionale indstillinger.

I ældre versioner af SQL Server kan du konvertere fra en DateTime til et heltal ved at caste til en float og derefter til en int:

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

(NB:Du kan ikke kaste direkte til en int, da MSSQL runder værdien op, hvis du er forbi midt på dagen!)

Hvis der er en forskydning i dine data, kan du naturligvis tilføje eller trække dette fra resultatet

Du kan konvertere i den anden retning ved at kaste lige tilbage:

select cast(my_integer_date as datetime)
from mytable


  1. Forbinder Visual COBOL til MySQL

  2. Erstat i forespørgselssyntaks

  3. MySQL hvordan udfylder man manglende datoer inden for rækkevidde?

  4. Endnu et argument for lagrede procedurer