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

Làm cách nào để loại trừ giới hạn trên trong GIỮA máy chủ sql

Có, bạn sẽ sử dụng >=< thường cho các truy vấn phạm vi thời gian / ngày

Ngoài ra, bạn có thể trừ 3 mili giây từ giới hạn trên để nhận giá trị datetime (không phải datetime2 mới hơn) cao nhất cho ngày đó (xxx 23:59.59.997 )

SELECT * FROM   log_file
WHERE  submission_date BETWEEN 1323714600000 AND 1323801000000-3

Lưu ý:trừ đi 1 có thể sẽ ổn nếu mọi thứ là mili giây ...

Chỉnh sửa, ví dụ về lý do tại sao 3ms

SELECT 
    DATEADD(millisecond, -1, '20111214'), -- 2011-12-14 00:00:00.000
    DATEADD(millisecond, -2, '20111214'), -- 2011-12-13 23:59:59.997
    DATEADD(millisecond, -3, '20111214')  -- 2011-12-13 23:59:59.997

Và thật thú vị, bạn có chắc đây là nửa đêm không?
Trong 1323813600 giây, tôi nhận được 2011-12-13 22:00:00

Trên SQL Server:

SELECT DATEADD(second, 1323813600, '19700101') 

Trên MySQL

SELECT FROM_UNIXTIME(1323813600)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server - Mệnh đề IN với nhiều trường

  2. Cách tách (tách) chuỗi bằng dấu phẩy trong thủ tục được lưu trữ trên SQL Server

  3. Hiệu suất SQL trên THAM GIA TRÁI OUTER so với KHÔNG TỒN TẠI

  4. Cách thêm số thứ tự cho các nhóm trong truy vấn SQL mà không có bảng tạm thời

  5. Sử dụng PIVOT và THAM GIA cùng nhau