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

Làm cách nào để bạn trích xuất chỉ ngày từ datetime trong T-Sql?

Cách tốt nhất là:

   SELECT DATEADD(day, DATEDIFF(Day, 0, @ADate), 0) 

Điều này là do bên trong, SQL Server lưu trữ tất cả các ngày dưới dạng hai số nguyên, trong đó số đầu tiên là số **** ngày *** kể từ ngày 1 tháng 1 năm 1900. (số thứ hai là phần thời gian, được lưu trữ dưới dạng số giây kể từ Nửa đêm. (giây cho SmallDateTime s hoặc mili giây cho DateTime s)
Sử dụng biểu thức trên sẽ tốt hơn vì nó tránh được tất cả các chuyển đổi, trực tiếp đọc và truy cập số nguyên đầu tiên đó trong biểu diễn nội bộ ngày tháng mà không cần phải thực hiện bất kỳ xử lý nào ... hai số 0 trong biểu thức trên (đại diện cho 1 Tháng 1 năm 1900), cũng được sử dụng trực tiếp để xử lý hoặc chuyển đổi w / o, vì chúng khớp với biểu diễn nội bộ của máy chủ SQL của ngày 1 tháng 1 năm 1900 chính xác như được trình bày (dưới dạng số nguyên) ..

*GHI CHÚ. Trên thực tế, số lượng ranh giới ngày (nửa đêm) bạn phải vượt qua để đi từ ngày này sang ngày kia.



  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 tạo tệp văn bản bằng script sql với văn bản |

  2. Cách giữ dữ liệu trong hàng trong SQL Server

  3. Làm cách nào để tạo SQL Server lưu datetime với định dạng AM / PM?

  4. Java7 sqljdbc4 - Lỗi SQL 08S01 trên getConnection ()

  5. Nhận giá trị cột từ chuỗi tên cột sql