estoy usando DAYOFWEEK() función en MySQL que devuelve para Domingo. Pero en mi país, la semana comienza con lunes, no domingo. ¿Hay alguna posibilidad de obtener un día de semana de MySQL formateado como: (1 - lunes, 2 - martes, ...)?MySQL DAYOFWEEK() - mi semana comienza con el lunes
Respuesta
Uso WEEKDAY()
en lugar de DAYOFWEEK()
, que comienza el lunes.
Si necesita comenzar en el índice 1, use o WEEKDAY() + 1
.
A veces soy tonto. Pude entender que esa función es soportada nativamente por MySQL. Gracias, nos. – picca
no eres tú el tonto. ¿Por qué día de la semana devolvería un valor diferente al de dayofweek? Esa es una idea tonta de mySQL. –
¿Qué hay de restar una y cambiando Domingo
IF(DAYOFWEEK() = 1, 7, DAYOFWEEK() - 1)
Por supuesto que tendría que hacer esto para cada consulta.
1 = Sunday es el estándar ODBC, por lo que debería estar en la consulta, creo. –
¿Por qué el voto a favor? –
Esto funciona, pero es demasiado complicado. – picca
se pudo escribir una UDF y tomar un valor para decirle qué día de la semana debe ser de 1 a verse así (basándose en la respuesta de Juan a utilizar MOD en lugar de 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
para llamar a esta función para darle el día actual de la semana cuando su valor de semana comienza un martes, por ejemplo, que se dice:
SELECT udfDayOfWeek(NOW(), 3);
cosa buena de tenerlo como una UDF es que también se podría llamar el un campo de conjunto de resultados como este:
SELECT
udfDayOfWeek(p.SignupDate, 3) AS SignupDayOfWeek,
p.FirstName,
p.LastName
FROM Profile p;
¿Hablas en serio? – hobodave
+1 lol ... así que me aburrí un poco. – codemonkey
Estás loco codemonkey: D – picca
Intente utilizar la función WEEKDAY()
.
Devuelve el índice de días de la semana para la fecha (0 = lunes, 1 = martes, ... 6 = domingo).
Usted puede utilizar fácilmente el argumento MODO:
MySQL :: MySQL 5.5 Reference Manual :: 12.7 Date and Time Functions
Si se omite el argumento modo, se utiliza el valor de la variable de sistema default_week_format:
MySQL :: MySQL 5.1 Reference Manual :: 5.1.4 Server System Variables
Creo que esta es en realidad la mejor respuesta. –
- 1. semana (AHORA()) comienza el domingo Necesito comenzar el lunes
- 2. mysql semana de lunes a domingo
- 3. Android Calendar - Comenzar la semana con el lunes
- 4. buscando el día de inicio (lunes) de la semana actual
- 5. C# Cultures: Localize DayOfWeek?
- 6. Número de p. Ej. Los lunes quedan en el mes
- 7. PHP strtotime() diferentes resultados del lunes de esta semana
- 8. Recuperar la fecha del lunes de la semana actual
- 9. ¿Obtener la fecha del primer lunes de la semana?
- 10. MySQL comienza con la búsqueda del problema
- 11. si NSDate es el lunes
- 12. Python: Convertir ('Lunes', 'Martes', 'Miércoles') a 'Lunes a Miércoles'
- 13. conversión de DayOfWeek enumeración a una cadena repesenting el día
- 14. Obtener fecha para el lunes y el viernes para la semana actual (PHP)
- 15. ¿Cómo hacer que GWT DatePicker se use el lunes como el primer día de la semana?
- 16. obtener enésimo día de la semana del mes en C#
- 17. Cambiando el día de inicio de la semana de 'lunes' a 'martes' en Php
- 18. DateTime DayOfWeek Comparación
- 19. MySQL - Si comienza con un número o carácter especial
- 20. MySQL cálculo semana entre dos fechas
- 21. Calcule el último día de la semana de un mes
- 22. jQuery ID comienza con
- 23. Primer día de semana en teléfonos Android
- 24. Obteniendo el primer día de la semana en MySql utilizando la semana n. °
- 25. día de la semana al número de días (de lunes = 1, martes = 2)
- 26. ¿Cómo obtener el 4 lunes de un mes con js?
- 27. Obtener la fecha del lunes en la semana actual en PHP 4
- 28. código Ruby para obtener la fecha del próximo lunes (o cualquier día de la semana)
- 29. matemáticas con enumeraciones (por ejemplo DAYOFWEEK) en C#
- 30. Fin de año con MySQL
que sé se puede hacer con algunas condiciones desagradables. Incluso probé el enfoque de módulo que me parece que no funciona (debido a la extraña implementación de Modulo en MySQL). Nada funcionó para mí hasta ahora. – picca
es un error de mysql. Las semanas comienzan el lunes según el estándar iso. http://en.wikipedia.org/wiki/ISO_week_date – woens
No es un error. 'DAYOFWEEK()' usa el estándar ODBC. – rgtk