Tôi đang sử dụng chức năng DAYOFWEEK() trong MySQL trả về cho chủ nhật. Nhưng ở quốc gia của tôi, tuần bắt đầu bằng thứ hai, không phải chủ nhật. Có cơ hội để có được ngày kể từ ngày MySQL hình thành như: (1 - Thứ Hai, 2 - Thứ Ba, ...)?MySQL DAYOFWEEK() - tuần của tôi bắt đầu bằng thứ hai
Trả lời
Sử dụng WEEKDAY()
thay vì DAYOFWEEK()
, bắt đầu vào thứ Hai.
Nếu bạn cần bắt đầu ở chỉ mục 1, hãy sử dụng hoặc WEEKDAY() + 1
.
Đôi khi tôi chỉ câm. Tôi có thể tìm ra, rằng chức năng như vậy được hỗ trợ bởi MySQL. Cảm ơn bạn. – picca
nó không phải là bạn đó là câm. Tại sao ngày trong tuần sẽ trả về một giá trị khác so với ngày trong tuần? Đó là một ý tưởng ngớ ngẩn bởi mySQL. –
Làm thế nào về trừ một và thay đổi chủ nhật
IF(DAYOFWEEK() = 1, 7, DAYOFWEEK() - 1)
Tất nhiên bạn sẽ phải làm điều này cho mỗi truy vấn.
1 = Chủ nhật là tiêu chuẩn ODBC, vì vậy nó sẽ phải được truy vấn tôi nghĩ. –
Tại sao lại là downvote? –
Điều này hoạt động, nhưng nó quá phức tạp. – picca
thể ghi một udf và tham gia một giá trị để nói với nó mà ngày trong tuần nên 1 sẽ trông như thế này (vẽ trên câu trả lời từ John sử dụng MOD thay vì CASE):
DROP FUNCTION IF EXISTS `reporting`.`udfDayOfWeek`;
DELIMITER |
CREATE FUNCTION `reporting`.`udfDayOfWeek` (
_date DATETIME,
_firstDay TINYINT
) RETURNS tinyint(4)
FUNCTION_BLOCK: BEGIN
DECLARE _dayOfWeek, _offset TINYINT;
SET _offset = 8 - _firstDay;
SET _dayOfWeek = (DAYOFWEEK(_date) + _offset) MOD 7;
IF _dayOfWeek = 0 THEN
SET _dayOfWeek = 7;
END IF;
RETURN _dayOfWeek;
END FUNCTION_BLOCK
để gọi chức năng này để cung cấp cho bạn ngày hiện tại của giá trị trong tuần khi tuần của bạn bắt đầu vào thứ ba ví dụ, bạn muốn gọi:
SELECT udfDayOfWeek(NOW(), 3);
đẹp điều về việc có nó như là một udf là bạn cũng có thể gọi nó trên một trường tập kết quả như sau:
SELECT
udfDayOfWeek(p.SignupDate, 3) AS SignupDayOfWeek,
p.FirstName,
p.LastName
FROM Profile p;
bạn có nghiêm túc không? – hobodave
+1 lol ... vì vậy tôi thấy hơi chán. – codemonkey
Bạn đang điên rồ codemonkey: D – picca
Hãy thử sử dụng chức năng WEEKDAY()
.
Trả về chỉ số ngày trong tuần cho ngày (0 = Thứ hai, 1 = Thứ ba,… 6 = Chủ nhật).
Bạn có thể dễ dàng sử dụng đối số CHẾ ĐỘ:
MySQL :: MySQL 5.5 Reference Manual :: 12.7 Date and Time Functions
Nếu đối số chế độ được bỏ qua, giá trị của biến hệ thống default_week_format được sử dụng:
MySQL :: MySQL 5.1 Reference Manual :: 5.1.4 Server System Variables
Tôi nghĩ đây thực sự là câu trả lời hay nhất. –
- 1. tìm ngày bắt đầu (Thứ Hai) của tuần hiện tại
- 2. tuần (NGAY BÂY GIỜ) bắt đầu vào Chủ Nhật Cần bắt đầu vào Thứ Hai
- 3. Thay đổi ngày bắt đầu trong tuần từ 'thứ hai' thành 'ngày thứ ba' trong Php
- 4. tuần mysql từ thứ Hai đến Chủ Nhật
- 5. Nhận ngày Thứ Hai đầu tiên của tuần?
- 6. Bắt tất cả thay thế thứ hai cho quy tắc bắt đầu của tôi
- 7. Tìm tuần này Thứ Hai
- 8. .OrderBy (DayOfWeek) để xử lý Chủ Nhật vào cuối tuần
- 9. Chỉ Chọn Thứ Sáu và Thứ Hai tới trong mysql
- 10. Tính ngày bắt đầu và ngày kết thúc của tuần trước
- 11. được tuần thứ n của tháng trong C#
- 12. Đầu tiên [Thứ Hai] của tháng, Thứ Hai [Thứ Năm] của tháng, v.v. Delphi
- 13. Bắt đầu chương trình trên màn hình thứ hai?
- 14. Làm cách nào để chọn hai tuần trước trong MYSQL?
- 15. PHP có ngày bắt đầu và ngày kết thúc của tuần theo số tuần
- 16. Tôi có thể bắt đầu và kiểm tra nhật ký MySQL của mình bằng cách nào?
- 17. python: làm cách nào để tôi luôn bắt đầu từ hàng thứ hai trong csv?
- 18. Tôi làm cách nào để bắt đầu quá trình Java thứ hai?
- 19. Lấy ngày đầu tiên trong tuần trong MySql bằng cách sử dụng Tuần số
- 20. cách bắt đầu dụ mới của dự án thứ hai trong quy trình mới
- 21. Đặt ngày bắt đầu trong tuần trong jQuery UI Datepicker?
- 22. Tìm ngày của Thứ Hai bằng Python
- 23. DAYOFWEEK, Mỗi Chủ nhật
- 24. Làm cách nào để nhóm một trường ngày theo tuần, nơi các tuần bắt đầu vào thứ Bảy?
- 25. hàng cuối cùng thứ hai của bảng mysql
- 26. Bắt chuỗi địa hoá cho dayOfWeek giá trị
- 27. MySQL bắt đầu bằng vấn đề tìm kiếm
- 28. Quartz.Net - Cứ 3 tuần một lần vào Thứ Hai, Thứ Ba, Thứ Tư
- 29. Liên kết bắt đầu bằng hai dấu gạch chéo
- 30. Tuần thứ 53 của năm trong R?
tôi biết nó có thể được thực hiện với một số điều kiện khó chịu. Tôi thậm chí đã thử phương pháp tiếp cận modulo mà dường như tôi không làm việc (vì thực hiện Modulo lạ trong MySQL). Không có gì làm việc cho tôi cho đến nay. – picca
nó là một lỗi mysql. Tuần bắt đầu vào thứ hai theo tiêu chuẩn ISO. http://en.wikipedia.org/wiki/ISO_week_date – woens
Nó không phải là một lỗi. 'DAYOFWEEK()' sử dụng chuẩn ODBC. – rgtk