sql >> Database >  >> RDS >> Sqlserver

Een numerieke waarde converteren naar datum en tijd

Uw datum is eigenlijk een numerieke waarde (float of integer), opgeslagen in een char-kolom. Je moet het dus converteren naar een numerieke waarde (in dit geval naar float ) eerst, zoals:

select convert(datetime, CONVERT(float,date_column))

Een waarde van 41547.5 zal resulteren in:

`2013-10-02 12:00:00`

Het stijlargument, in jouw geval 6 is alleen nodig bij het converteren van of naar char-types. In dit geval is het niet nodig en wordt het genegeerd.

NB:De float-waarde is het aantal dagen sinds 1900-01-01 .

bijv. select convert(datetime, CONVERT(float,9.0)) => 1900-01-10 00:00:00; hetzelfde als select dateadd(day,9.0,'1900-01-01') zou.

Het decimale deel van het getal komt ook overeen met dagen; dus 0.5 is een halve dag / 12 uur.

bijv. select convert(datetime, CONVERT(float,.5)) => 1900-01-01 12:00:00 . (Hier is onze vergelijking met dateadd niet logisch, aangezien dat alleen gaat over gehele getallen in plaats van floats).



  1. Entiteitskadermodel bijwerken

  2. Hoe het kenmerk van een kolom te wijzigen met behulp van sql-script

  3. hoe kan ik een back-up maken en de datum herstellen vanuit de mysql-database?

  4. Houd de databaseprestaties bij met Uptime Infrastructure Monitor