Последний IDE Netbeans (6.1) имеет довольно серьезную поддержку Ruby.
можно проверить его здесь .
Используйте WEEKDAY ()
вместо DAYOFWEEK ()
, он начинается в понедельник.
Если вам нужно начать с индекса 1, используйте или WEEKDAY () + 1
.
Как насчет вычитания единицы и изменения Sunday
IF(DAYOFWEEK() = 1, 7, DAYOFWEEK() - 1)
Of конечно, вам придется делать это для каждого запроса.
Можно написать udf и принять значение, указывающее, какой день недели должен быть 1, будет выглядеть так (на основе ответа от Джон, чтобы использовать MOD вместо 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
Чтобы вызвать эту функцию, чтобы получить значение текущего дня недели, когда ваша неделя начинается, например, во вторник, вы должны позвонить:
SELECT udfDayOfWeek(NOW(), 3);
Хорошая вещь о наличии это как udf, вы также можете вызвать его в поле набора результатов следующим образом:
SELECT
udfDayOfWeek(p.SignupDate, 3) AS SignupDayOfWeek,
p.FirstName,
p.LastName
FROM Profile p;
Попробуйте использовать функцию WEEKDAY ()
.
Возвращает индекс дня недели для даты (0 = понедельник, 1 = вторник,… 6 = Воскресенье).