Máy chủ bảng của Oracle cung cấp một chức năng tích hợp sẵn , TRUNC(timestamp,'DY')
. Hàm này chuyển đổi bất kỳ dấu thời gian nào thành nửa đêm của ngày Chủ nhật trước đó. Cách tốt nhất để làm điều này trong MySQL là gì?
Oracle cũng đề xuất TRUNC(timestamp,'MM')
chuyển đổi một dấu thời gian thành nửa đêm của ngày đầu tiên của tháng mà nó xảy ra. Trong MySQL, cái này rất đơn giản:
TIMESTAMP(DATE_FORMAT(timestamp, '%Y-%m-01'))
Nhưng DATE_FORMAT
thủ thuật này sẽ không hoạt động trong nhiều tuần. Tôi biết về WEEK(timestamp)
chức năng này, nhưng tôi thực sự không muốn số tuần trong năm; công cụ này dành cho công việc nhiều năm.