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

Chuyển đổi từ DateTime sang INT

CHỈNH SỬA:Truyền tới float / int không còn hoạt động trong các phiên bản SQL Server gần đây. Thay vào đó, hãy sử dụng những thứ sau:

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

Lưu ý rằng ngày chuỗi phải ở định dạng ngày rõ ràng để không bị ảnh hưởng bởi cài đặt khu vực của máy chủ của bạn.

Trong các phiên bản cũ hơn của SQL Server, bạn có thể chuyển đổi từ DateTime sang Integer bằng cách truyền sang float, sau đó thành int:

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

(NB:Bạn không thể truyền thẳng đến một int, vì MSSQL làm tròn giá trị nếu bạn đã qua giữa ngày!)

Nếu có sự chênh lệch trong dữ liệu của bạn, rõ ràng bạn có thể cộng hoặc trừ phần này khỏi kết quả

Bạn có thể chuyển đổi theo hướng khác, bằng cách truyền thẳng trở lại:

select cast(my_integer_date as datetime)
from mytable


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách hàm PATINDEX () hoạt động trong SQL Server (T-SQL)

  2. Lược đồ cơ sở dữ liệu, tự động tăng

  3. Các cách có thể để khắc phục sự cố lỗi siêu dữ liệu máy chủ SQL

  4. Tạo sơ đồ mối quan hệ bảng từ lược đồ hiện có (SQL Server)

  5. Hàm phân vùng COUNT () OVER có thể sử dụng DISTINCT