Quiero calcular el número de semana del mes, quiero calcular el número de semana, ya sea la semana par o impar, ¿cómo puedo obtener esto en TSQL? ¡Gracias a todos!TSQL Calcular el número de semana del mes
Respuesta
Esto le da la semana de la fecha de @dt dentro de su mes. Hay una segunda columna que utiliza una instrucción CASE sobre la expresión que permite alternar entre "impar" o "Incluso"
declare @dt datetime
set @dt = GETDATE()
select
WhichWeekOfMonth = datepart(wk, @dt)
- datepart(wk,dateadd(m, DATEDIFF(M, 0, @dt), 0)) + 1,
case when (datepart(wk, @dt)
- datepart(wk,dateadd(m, DATEDIFF(M, 0, @dt), 0)) + 1) % 2 = 1
then 'Odd' else 'Even' end
Ese es un gran Richard. ¿Puede ayudarnos con cómo podemos hacer lo contrario? Con un número de mes y semana, ¿podemos obtener la primera y la última fecha en el número de esa semana? – Jinith
Prueba esto:
SELECT (DATEPART(d, '02/07/2011')/7)%2 AS WeekNo, --Replace your date column in place of '02/07/2011'
CASE (DATEPART(d, '02/07/2011')/7)%2
WHEN 1 THEN 'Odd'
ELSE 'Even'
END AS WeekType
da la respuesta equivocada (por mi definición - ver mi respuesta) - dice que está en la semana 1 – RichardTheKiwi
La consulta anterior indica si para la fecha dada la semana es la semana par o la semana impar del mes ... – Chandu
que le dará semana Número por cada mes
declare @dates datetime
select @dates='2011-03-22'
SELECT datepart(dd,@dates), ceiling (cast(datepart(dd,@dates)as numeric(38,8))/7)
¿Qué tal algo legible, fácilmente personalizable, y predecible ...
DECLARE @dayOfMonth AS INT;
SET @dayOfMonth = DATEPART(DAY, '3/14/2013');
SELECT CASE
WHEN @dayOfMonth < 8 THEN 1
WHEN @dayOfMonth < 15 THEN 2
WHEN @dayOfMonth < 22 THEN 3
ELSE 4
END AS weekOfMonth;
Creo que esto hace que el enfoque muy obvia:
DECLARE @DayOne DATETIME
DECLARE @ThisDay DATETIME
SET @ThisDay = GETDATE()
SET @DayOne = CAST(CAST(MONTH(@ThisDay) AS VARCHAR) + '/1/' + CAST(YEAR(@ThisDay) AS VARCHAR) AS DATETIME)
SELECT (DATEPART(wk, @ThisDay) - DATEPART(wk, @DayOne) + 1) AS [Week Of Month]
SQL Server 2012 tiene una función CONCAT que se puede utilizar para construir más fácilmente la cadena DayOne:
DECLARE @DayOne DATETIME
DECLARE @ThisDay DATETIME
SET @ThisDay = GETDATE()
SET @DayOne = CAST(CONCAT(MONTH(@ThisDay), '/1/', YEAR(@ThisDay)) AS DATETIME)
SELECT (DATEPART(wk, @ThisDay) - DATEPART(wk, @DayOne) + 1) AS [Week Of Month]
- 1. python - Número de semana del mes
- 2. Calcular días del mes
- 3. ¿Cómo obtengo el número de mes del año y el número de semana en C#?
- 4. calcule el mes del año y el número de semana en excel
- 5. Calcula la semana del mes en .NET
- 6. Obtener el nombre Mes del número del mes
- 7. Cómo encontrar la semana del mes
- 8. calcular semanas por un mes en jodatime
- 9. Rails número de semanas en el mes
- 10. obtener enésimo día de la semana del mes en C#
- 11. Hallazgo de la semana, el mes y el año
- 12. calcular la fecha del cuarto sábado en el mes actual
- 13. Calcule el último día de la semana de un mes
- 14. Javascript: calcular el número de días en el mes para un año determinado
- 15. Función para la semana del mes en mysql
- 16. Obtener el nombre del mes del número en PostgreSQL
- 17. iphone ¿cómo puedo obtener el nombre del mes a partir del número de mes?
- 18. ¿Cómo puedo calcular/encontrar el número de semana de una fecha determinada?
- 19. Convertir el nombre del mes en el número
- 20. convertir mes del nombre al número
- 21. Agrupación por semana/mes/etc. y ActiveRecord?
- 22. ¿Cómo encontrar el número de días del mes en curso
- 23. ¿Cómo puedo determinar si una fecha determinada es el N ° día entre semana del mes?
- 24. obtener el número de archivos modificados el mes pasado
- 25. Cómo calcular segundo viernes del mes en C#
- 26. ¿Cómo mostrar el nombre del mes por número?
- 27. TSQL: agrupación de pedidos de clientes por semana
- 28. ¿Cómo calcular el primer NSDate de la semana actual?
- 29. Número de p. Ej. Los lunes quedan en el mes
- 30. Calcular diferencia de mes en Joda Time
lista de algunas de las fechas de muestra y espera que la producción – RichardTheKiwi