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;