En sql, cómo obtener la fecha de inicio y finalización de la semana para el mes en particular. Me puedes ayudar.Obteniendo el inicio y la fecha de finalización de la semana? En el servidor Sql?
Respuesta
El siguiente trabajo lo tiene en cuenta el primer día de la semana (domingo, lunes, etc.), solo asegúrate de usar SET DATEFIRST
si deseas cambiar el valor predeterminado. SET DATEFIRST 1
hará el primer día de la semana el lunes.
SELECT DATEADD(DAY, 1 - DATEPART(WEEKDAY, GETDATE()), CAST(GETDATE() AS DATE)) [WeekStart],
DATEADD(DAY, 7 - DATEPART(WEEKDAY, GETDATE()), CAST(GETDATE() AS DATE)) [WeekEnd]
EDITAR
Acabo de releer usted solicita y creo que es posible que después de algo diferente a lo que he dado anteriormente. Si desea que el día de la semana de la primera y la última del mes esto va a hacer el truco:
SELECT DATENAME(WEEKDAY, DATEADD(DAY, 1 - DATEPART(DAY, GETDATE()), GETDATE())) [FirstDayOfMonth],
DATENAME(WEEKDAY, DATEADD(DAY, - DATEPART(DAY, DATEADD(MONTH, 1, GETDATE())), DATEADD(MONTH, 1, GETDATE()))) [LastDayOfMonth]
Para conseguir el primer día de uso semana:
select dateadd(wk, datediff(wk, 0, getdate()), 0)
El último día será el primer día + 6:
select dateadd(wk, datediff(wk, 0, getdate()), 0) + 6
Advertencia: esta es la cultura sensible. Consulte la documentación en @@datefirst
Su requisito no está claro: ¿cuál considera que es el primer y último día de una semana? Domingo y sábado Lunes y viernes? Lunes y domingo? Pero la mejor solución para muchas consultas relacionadas con la fecha es crear un calendar table. Eso le da la capacidad de establecer fácilmente el primer y último día de semanas, meses y años de acuerdo con su definición e incluso en múltiples formatos si es necesario.
Esto es especialmente útil si trabaja con conceptos como años financieros, días hábiles, etc., donde las definiciones varían según el país e incluso la empresa. También es la solución más fácil cuando hay excepciones a su lógica, p. la primera semana del año tiene reglas diferentes a una semana 'normal'.
Con un calendario de mesa se podía rellenar previamente el primer y último día de la semana y luego la consulta podría ser algo como esto:
-- first/last days stored as dates in their own columns
select FirstDayOfThisWeek, LastDayOfThisWeek
from dbo.Calendar
where BaseDate = @SomeDate
-- first/last days stored as bit flags
select max(BaseDate)
from dbo.Calendar
where BaseDate <= @SomeDate and IsFirstDayOfWeek = 0x1
Aquí i dada
semana, mes, trimestre, semestre, año empiezan y terminan fecha .
Select CONVERT(varchar(50), GETDATE(),105) 'GETDATE' ,
CONVERT(varchar(50), DATEADD(DAY, 2 - DATEPART(WEEKDAY, GETDATE()), CAST(GETDATE() AS DATE)),105) [WeekStart],
CONVERT(varchar(50),DATEADD(DAY, 8 - DATEPART(WEEKDAY, GETDATE()), CAST(GETDATE() AS DATE)) ,105)[WeekEnd],
CONVERT(varchar(50),DATEADD(dd, -DAY(getdate()) + 1, getdate()),105) MonthStart,
CONVERT(varchar(50),DATEADD(dd, -DAY(DATEADD(mm, 1, getdate())), DATEADD(mm, 1, getdate())),105) MonthStart,
CONVERT(varchar(50), DATEADD(q, DATEDIFF(q, 0, GETDATE()), 0),105) AS 'QStart Date',
CONVERT(varchar(50), DATEADD(d, -1, DATEADD(q, DATEDIFF(q, 0, GETDATE()) + 1,0)),105) AS 'QEnd Date',
CONVERT(varchar(50), CAST(CAST(((((MONTH(GETDATE()) - 1)/6) * 6) + 1) AS VARCHAR) + '-1-' + CAST(YEAR(GETDATE()) AS VARCHAR) AS DATETIME),105) StartOfHalfYear,
CONVERT(varchar(50), CAST(CAST(((((MONTH(GETDATE()) - 1)/6) * 6) + 6) AS VARCHAR) + '-1-' + CAST(YEAR(GETDATE()) AS VARCHAR) AS DATETIME),105)EndOfHalfYear,
CONVERT(varchar(50), DATEADD(yy, DATEDIFF(yy,0,getdate()), 0),105) AS StartOfYear,
CONVERT(varchar(50), DATEADD(yy, DATEDIFF(yy,0,getdate()) + 1, -1),105) AS EndOfYear
A continuación se muestra una declaración de caso que puede utilizar para crear un valor de fecha para el valor de fecha. Hará que sus semanas comiencen el lunes o el martes o el miércoles ... etc. dependiendo de qué día de la semana haya establecido como @pDate.
crear parámetros
DECLARE @pDate Date = NULL --Replace with your date, which will also be the first day of the week
DECLARE @pDatePart SMALLINT = DATEPART(dw, @pDate)
luego poner este caso comunicado después de su selecto
CASE
WHEN DATEPART(dw, CAST(DATEVALUE AS DATE)) BETWEEN @pDatePart AND 7 THEN DATEADD(d, (DATEPART(dw, CAST(DATEVALUE AS DATE))*-1)[email protected], CAST(DATEVALUE AS DATE))
WHEN DATEPART(dw, CAST(DATEVALUE AS DATE)) BETWEEN 1 AND @pDatePart-1 THEN DATEADD(d, (DATEPART(dw, CAST(DATEVALUE AS DATE))*-1)+(@pDatePart-7), CAST(DATEVALUE AS DATE))
END
AS DynamicWeekBegin
Siempre se puede obtener la fecha final de la semana, sólo mediante el uso dateadd (d, 6, EL CASO DECLARACIÓN)
- 1. Obtenga la fecha de inicio y la fecha de finalización de la semana actual (inicio de la semana del lunes y finaliza el domingo)
- 2. Calcular la fecha de inicio y finalización de la semana anterior
- 3. ¿Cómo se obtiene la "fecha de inicio de la semana" y la "fecha de fin de semana" del número de semana en SQL Server?
- 4. Obteniendo el día de la semana localizado
- 5. Obteniendo el año y la semana del año desde la fecha de PHP() cuando la semana abarca dos años
- 6. Obteniendo la primera/última fecha de la semana
- 7. Rieles: obtenga las fechas de inicio y finalización de la semana actual y del mes
- 8. Loop desde la fecha de inicio hasta la fecha de finalización en el script de shell de Mac OS X
- 9. Fecha de inicio y finalización de un mes actual
- 10. Obtener días de inicio y finalización para una semana determinada en PHP
- 11. buscando el día de inicio (lunes) de la semana actual
- 12. Obteniendo el primer día de la semana en MySql utilizando la semana n. °
- 13. Obtener el día de la semana en SQL 2005/2008
- 14. Fecha de día de la semana en el maravilloso
- 15. ¿Es posible establecer el inicio de la semana para la función DATEDIFF de T-SQL?
- 16. Obtenga el primer día de la semana en SQL Server
- 17. En .net, conociendo el número de semana ¿cómo puedo obtener la fecha de la semana?
- 18. pl sql cómo obtener el día de la semana para la fecha de oráculo db
- 19. Hallazgo de la semana, el mes y el año
- 20. Encontrar el rango de fechas de la semana por fecha actual en sql?
- 21. Fecha de entrega, obtener el día de la semana - SYSTEMTIME
- 22. javascript check fecha de finalización es mayor o igual a la fecha de inicio
- 23. de año y semana hasta la fecha en php
- 24. Encuentra lagunas en el tiempo no cubiertos por los registros con fecha de inicio y fecha de finalización
- 25. Obteniendo la fecha de un ensamblado .NET
- 26. Cómo agregar automáticamente la fecha de 1 año a una fecha existente en el servidor SQL
- 27. Agregar o restar hora de la fecha y hora en el servidor SQL
- 28. Buscar fecha específica en la semana actual
- 29. Obteniendo la fecha solamente
- 30. SQL Server devuelve la semana inesperada número
gracias, Sr.Gareth D, lo tengo, utilizo tu consulta y agrego un código más ahora que viene gracias. –