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

SQL:Sử dụng DATEADD với bigints

Chỉ cần thực hiện DATEADD có vấn đề trong hai bước, bắt đầu với đơn vị thời gian thô hơn (giây, phút, giờ, v.v.), sau đó quay trở lại đơn vị thời gian nhỏ cho phần còn lại.

Tuy nhiên, hãy tránh đi đến cấp độ tuần và tháng vì điều đó sẽ yêu cầu tính toán lịch thực tế và chúng tôi muốn hệ thống xử lý điều đó.

Ví dụ bên dưới cần tính toán thời gian bắt đầu cho trước thời lượng dòng điện lớn (có thể) tính bằng mili giây.

-- large durations can overflow the integer argument needed for DATEADD

-- so do as two steps subtracting minutes (60000ms) and then remaining milliseconds.

DATEADD(ms, -large_duration_ms%60000, DATEADD(minute, -large_duration_ms/60000, GETDATE()))


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MSSQL - Chuyển đổi mili giây kể từ năm 1970 thành datetime2

  2. Làm cách nào để lưu trữ hình ảnh vào một cột varbinary (max)?

  3. Chuỗi kết nối máy chủ SQL - dấu chấm (.) Hoặc (cục bộ) hoặc (cục bộ)

  4. Độ phân giải DateTimeOffset trong c # và SQL Server

  5. Microsoft có thể lưu trữ các trường có ba giá trị trong một bit không?