Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Преобразуване на числова стойност в дата и час

Вашата дата всъщност е числова стойност (float или integer), съхранена в колона char. Така че трябва да го преобразувате в числова стойност (в този случай в float ) първо, като:

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

Стойност 41547.5 ще доведе до:

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

Аргументът стил във вашия случай 6 е необходимо само при преобразуване от или към char-типове. В този случай не е необходимо и ще бъде игнорирано.

NB:Плаващата стойност е броят дни от 1900-01-01 .

напр. select convert(datetime, CONVERT(float,9.0)) => 1900-01-10 00:00:00; същото като select dateadd(day,9.0,'1900-01-01') бих.

Десетичната част на числото също се равнява на дни; така 0.5 е половин ден / 12 часа.

напр. select convert(datetime, CONVERT(float,.5)) => 1900-01-01 12:00:00 . (Тук нашето сравнение с dateadd няма смисъл, тъй като то се занимава само с цели числа, а не с плаващи числа).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. изпрати xml към sql

  2. Достъп само за четене до съдържанието на съхранената процедура

  3. Грешка при промяна на таблицата на SQL Server не може да бъде уловена

  4. Как можем да проверим дали таблицата има индекс или не?

  5. Принуждаване на първо код винаги да инициализира несъществуваща база данни?