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

Cách trừ 30 ngày cho một ngày trong T-SQL

Vấn đề:

Bạn muốn lấy ngày trước một ngày cụ thể 30 ngày trong T-SQL.

Ví dụ:

Cơ sở dữ liệu của chúng tôi có một bảng có tên Computer với dữ liệu trong các cột Id , NamePurchaseDate .

Id Tên Ngày mua hàng
1 Sony GX1000 2019-01-20
2 Samsung LX2000 2019-04-15
3 Dell K80 2019-08-30

Hãy lấy tên của từng máy tính và ngày trước 30 ngày ngày mua của nó.

Giải pháp:

Chúng tôi sẽ sử dụng hàm DATEADD () để trừ một số ngày nhất định cho một ngày.

	SELECT Name,
		  DATEADD(day, -30, PurchaseDate)
		    AS BeforePurchaseDate;
      FROM Computer;

Đây là kết quả của truy vấn:

Tên BeforePurchaseDate
Sony GX1000 2018-12-21
Samsung LX2000 ngày 16 tháng 3 năm 2019
Dell K80 2019-07-31

Thảo luận:

Nếu bạn muốn trừ ngày hoặc giờ trong SQL Server, hãy sử dụng DATEADD() hàm số. Nó cần ba đối số. Đối số đầu tiên là đơn vị ngày / giờ - trong ví dụ của chúng tôi, chúng tôi chỉ định ngày đơn vị.

Tiếp theo là ngày hoặc đơn vị thời gian giá trị . Trong ví dụ của chúng tôi, đây là -30 , bởi vì chúng tôi sẽ mất 30 ngày kể từ ngày hiện tại. Hãy nhớ rằng số trừ biểu thị trừ đi giá trị; nếu không có dấu hiệu này, bạn đang thêm vào ngày nhất định.

Đối số cuối cùng là ngày chúng tôi đang hoạt động; đây có thể là cột ngày / giờ / ngày giờ hoặc bất kỳ biểu thức nào trả về ngày hoặc giờ. Trong ví dụ của chúng tôi, chúng tôi sử dụng PurchaseDate , một date cột.

Hàm trả về một ngày đã thay đổi. Trong ví dụ của chúng tôi, truy vấn cho máy tính có tên 'Dell K80' trả về một ngày mới trong BeforePurchaseDate cột. Ngày ban đầu '2019-08-30' được thay đổi thành ngày từ 30 ngày trở lại:'2018-07-31' .

Bạn có thể sử dụng DATEADD() cho tất cả các kiểu dữ liệu ngày và giờ.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ký hiệu mũi tên

  2. Cách tạo bảng cơ sở dữ liệu bằng SQL

  3. Sử dụng Docker trên Azure Container Service với Swarm Cluster

  4. Cơ sở dữ liệu là gì?

  5. Các nguyên tắc cơ bản về biểu thức bảng, Phần 13 - Hàm nội tuyến được định giá trong bảng, tiếp theo