Chìa khóa là sử dụng DATEADD và DATEDIFF cùng với kiểu liệt kê khoảng thời gian SQL thích hợp.
declare @datetime datetime;
set @datetime = getdate();
select @datetime;
select dateadd(year,datediff(year,0,@datetime),0);
select dateadd(month,datediff(month,0,@datetime),0);
select dateadd(day,datediff(day,0,@datetime),0);
select dateadd(hour,datediff(hour,0,@datetime),0);
select dateadd(minute,datediff(minute,0,@datetime),0);
select dateadd(second,datediff(second,'2000-01-01',@datetime),'2000-01-01');
select dateadd(week,datediff(week,0,@datetime),-1); --Beginning of week is Sunday
select dateadd(week,datediff(week,0,@datetime),0); --Beginning of week is Monday
Lưu ý rằng khi bạn xếp sàn đến giây thứ hai, bạn sẽ thường bị tràn số học nếu bạn sử dụng 0. Vì vậy, hãy chọn một giá trị đã biết được đảm bảo thấp hơn ngày giờ bạn đang cố gắng xếp sàn.