Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Converter de DateTime para INT


EDIT:A conversão para um float/int não funciona mais em versões recentes do SQL Server. Use o seguinte em vez disso:
select datediff(day, '1899-12-30T00:00:00', my_date_field)
from mytable

Observe que a data da string deve estar em um formato de data inequívoco para que não seja afetado pelas configurações regionais do seu servidor.

Em versões mais antigas do SQL Server, você pode converter de um DateTime para um Integer convertendo para um float e, em seguida, para um int:
select cast(cast(my_date_field as float) as int)
from mytable

(NB:Você não pode converter direto para um int, pois o MSSQL arredonda o valor se você passar do meio-dia!)

Se houver um deslocamento em seus dados, você obviamente pode adicionar ou subtrair isso do resultado

Você pode converter na outra direção, lançando diretamente de volta:
select cast(my_integer_date as datetime)
from mytable