Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Chuyển đổi một giá trị số thành ngày giờ

Ngày của bạn thực sự là một giá trị số (float hoặc số nguyên), được lưu trữ trong cột char. Vì vậy, bạn cần chuyển nó thành giá trị số (trong trường hợp này là float ) đầu tiên, như:

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

Giá trị 41547.5 sẽ dẫn đến:

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

Đối số kiểu, trong trường hợp của bạn là 6 chỉ cần thiết khi chuyển đổi từ hoặc sang kiểu char. Trong trường hợp này, nó không cần thiết và sẽ được bỏ qua.

NB:Giá trị float là số ngày kể từ 1900-01-01 .

ví dụ. select convert(datetime, CONVERT(float,9.0)) => 1900-01-10 00:00:00; giống như select dateadd(day,9.0,'1900-01-01') sẽ.

Phần thập phân của số cũng tương đương với ngày; vì vậy 0.5 là nửa ngày / 12 giờ.

ví dụ. select convert(datetime, CONVERT(float,.5)) => 1900-01-01 12:00:00 . (Ở đây so sánh của chúng tôi với dateadd không có ý nghĩa, vì điều đó chỉ liên quan đến số nguyên chứ không phải số thực).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sử dụng SMO để thay đổi vị trí mặc định của cơ sở dữ liệu SQL Server

  2. Truy vấn SQL:Cần thứ tự theo số lượng, hầu hết phải ở trên cùng, phần còn lại theo sau

  3. T-SQL tách trên dấu phân cách

  4. Nội bộ sao chép giao dịch SQL Server - Phần 2

  5. Các bản sửa lỗi liên quan đến hiệu suất cho SQL Server 2012