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

Làm thế nào để có được ngày cuối cùng của tháng trong T-SQL

Vấn đề:

Bạn muốn tìm ngày cuối cùng của tháng cho một ngày cụ thể trong T-SQL.

Ví dụ:

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

Id Tên Ngày mua hàng
1 ghế sofa 2019-02-10
2 bàn 2019-04-01
3 tủ sách 2019-05-20

Hãy lấy tên sản phẩm và ngày mua cũng như ngày cuối cùng của tháng khi những mặt hàng này được mua.

Giải pháp:

Chúng tôi sẽ sử dụng hàm EOMONTH () để tìm ngày cuối cùng của tháng.

SELECT Name,
	 PurchaseDate,
	 EOMONTH(PurchaseDate) AS LastDayDate
FROM Furniture;

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

Tên Ngày mua hàng LastDayDate
ghế sofa 2019-02- 10 2019-02- 28
bàn 2019-04- 01 2019-04- 30
tủ sách 2019-05- 20 2019-05- 31

Thảo luận:

Nếu bạn muốn lấy ngày có chứa ngày cuối cùng của tháng của một ngày nhất định, hãy sử dụng hàm EOMONTH (). Hàm này nhận một đối số bắt buộc:ngày (hoặc ngày và giờ), có thể là cột ngày / giờ hoặc biểu thức trả về ngày tháng. (Trong ví dụ của chúng tôi, chúng tôi sử dụng PurchaseDate cột.)

EOMONTH () trả về ngày cuối cùng của tháng làm đối số. Truy vấn ở trên cho ghế sofa có ngày mua ‘2019-02-10’ trả về ‘2019-02-28’; vào tháng 2 năm 2019, ngày cuối cùng của tháng là ngày 28.

Nếu bạn muốn trả về ngày cuối cùng của tháng thứ hai, thứ ba, v.v. từ một ngày nhất định, hãy sử dụng đối số thứ hai tùy chọn của EOMONTH ():số tháng cần thêm. Nhìn vào ví dụ:

SELECT Name,
	 PurchaseDate,
	 EOMONTH(PurchaseDate,1) AS LastDayDate
FROM Furniture;

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

Tên Ngày mua hàng LastDayDate
ghế sofa 2019- 02 - 10 2019- 03 - 30
bàn 2019- 04 - 01 2019- 05 - 31
tủ sách 2019- 05 - 20 2019- 06 - 30

Đối với ghế sofa có ngày mua là ‘2019-02-10’, truy vấn này trả về ‘2019-03-30’ - ngày cuối cùng của tiếp theo tháng. Chúng tôi đã thêm một tháng vào cuối tháng hiện tại.

Nếu bạn muốn tìm ngày cuối cùng của tháng trước một tháng nhất định, hãy sử dụng giá trị âm (ví dụ:‘-1’) làm đối số thứ hai:

SELECT Name,
	 PurchaseDate,
	 EOMONTH(PurchaseDate,-1) AS LastDayDate
FROM Furniture;

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

Tên Ngày mua hàng LastDayDate
ghế sofa 2019- 02 - 10 2019- 01 - 31
bàn 2019- 04 - 01 2019- 03 - 31
tủ sách 2019- 05 - 20 2019- 04 - 30

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. T-SQL Thứ ba # 33:Cú đánh lừa:Lược đồ Switch-A-Roo

  2. Đang theo dõi CLR_MANUAL_EVENT ở mức cao

  3. Làm thế nào để đổi tên một tên cột trong SQL?

  4. Sửa đổi dữ liệu trong phần Cách ly ảnh chụp nhanh đã cam kết đọc

  5. Trực quan hóa dữ liệu trong Microsoft Power BI