sql >> Database >  >> RDS >> Sqlserver

Converteren van DateTime naar INT

EDIT:Casten naar een float/int werkt niet meer in recente versies van SQL Server. Gebruik in plaats daarvan het volgende:

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

Houd er rekening mee dat de tekenreeksdatum een ​​ondubbelzinnige datumnotatie moet hebben, zodat deze niet wordt beïnvloed door de regionale instellingen van uw server.

In oudere versies van SQL Server kunt u een DateTime naar een geheel getal converteren door te casten naar een float en vervolgens naar een int:

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

(NB:je kunt niet rechtstreeks naar een int casten, aangezien MSSQL de waarde naar boven afrondt als je na de middag bent!)

Als er een verschuiving in uw gegevens is, kunt u deze uiteraard optellen of aftrekken van het resultaat

Je kunt in de andere richting converteren door recht terug te werpen:

select cast(my_integer_date as datetime)
from mytable


  1. Verzachtende indexfragmentatie

  2. MySQL hoog CPU-gebruik

  3. Paginering met OFFSET / FETCH:een betere manier

  4. Hoe CHR() werkt in MariaDB