Vấn đề:
Bạn muốn hiển thị ngày hôm qua (không tính thời gian) trong cơ sở dữ liệu SQL Server.
Giải pháp:
SELECT DATEADD(day, -1, CAST(GETDATE() AS date)) AS YesterdayDate;
Giả sử hôm nay là ngày 24 tháng 9 năm 2020, kết quả là:
| today_date |
|---|
| 2020-09-23 |
Thảo luận:
Để có được ngày của ngày hôm qua, bạn cần phải trừ đi một ngày từ ngày hôm nay. Sử dụng GETDATE() để lấy ngày hôm nay (loại là datetime ) và truyền nó đến date . Trong SQL Server, bạn có thể trừ hoặc thêm bất kỳ số ngày nào bằng cách sử dụng DATEADD() chức năng.
DATEADD() hàm nhận ba đối số:datepart , number và date . Đây, giá trị của datepart là date , bởi vì đơn vị thời gian bạn muốn trừ đi là ngày. Đối số thứ hai là -1 (bạn trừ đi 1 ngày, tương tự như cộng -1 ngày). Đối số thứ ba là ngày hôm nay — ngày mà bạn muốn trừ đi.
Tất nhiên, bạn có thể quay lại bất kỳ khoảng thời gian nào một cách dễ dàng. Đây là một ví dụ:
SELECT DATEADD(month, -5, CAST(GETDATE() AS date));
Một khoảng thời gian cũng có thể được added đến một buổi hẹn hò. Vì vậy, đây là một cách nếu bạn muốn biết ngày mai:
SELECT DATEADD(day, 1, CAST(GETDATE() AS date)) AS TomorrowDate;