Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 10825|Respuesta: 0

[Fuente] Declaración práctica de SQL: estimación de fecha

[Copiar enlace]
Publicado en 26/11/2014 15:53:01 | | |

DECLARA @dt fecha
SET @dt=GETDATE()

DECLARE @number int
CONJUNTO @number=3

--1. Especificar la fecha del primer o último día del año
--A. El primer día del año
SELECT Co nVERT(char(5),@dt,120)+ '1-1'

--B. El último día del año
SELECT Co nVERT(char(5),@dt,120)+ '12-31'


--2. El primer o último día del trimestre en el que se encuentra la fecha especificada
--A. Primer día del trimestre
SELECT Co nVERT(fecha-hora,
Co nVERT(char(8),
DATEADD(Mo nth,
DATEPART(Quarter,@dt)*3-Mo nth(@dt)-2,
@dt),
120)+ '1 ')

--B. Último día del trimestre (sentencia del caso)
SELECT Co nVERT(fecha-hora,
Co nVERT(char(8),
DATEADD(Mo nth,
DATEPART(Quarter,@dt)*3-Mo nth(@dt),
@dt),
120)
+CASO CUANDO FECHAPARTE(Quarter,@dt) en(1,4)
LUEGO '31 'ELSE '30' FIN)

--C. Último día del trimestre (algoritmo de empuje directo)
SELECT DATEADD(Day,-1,
Co nVERT(char(8),
DATEADD(Mo nth,
1+DATAPART(Cuarto,@dt)*3-Mo nth(@dt),
@dt),
120)+ '1 ')


--3. El primer o último día del mes en el que se encuentra la fecha especificada
--A. El primer día del mes
SELECT Co nVERT(fecha-tiempo, Co nVERT(char(8),@dt,120)+ '1')

--B. El último día del mes
SELECT DATEADD(Day,-1,Co nVERT(char(8),DATEADD(Mo nth,1,@dt),120)+ '1 ')

--C. Último día del mes (método incorrecto fácil de usar)
SELECT DATEADD(Mo nth,1,DATEADD(Day,-DAY(@dt),@dt))


--4. Cualquier día de la semana en el que se encuentre la fecha especificada
SELECT DATEADD(Day,@number-DATEPART(Weekday,@dt),@dt)


--5. Cualquier día de la semana en el que se encuentre la fecha especificada
--Un.  El domingo como el primer día de la semana
SELECT DATEADD(Day,@number-(DATEPART(Día Laborable,@dt)+@@DATEFIRST-1)%7,@dt)

--B.  El lunes es el primer día de la semana
SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-2)%7-1,@dt)






Anterior:Problema de utilización del índice cuando SQL Servers maneja como '%keyword%'
Próximo:Nuevas características del ORACLE 11g - Permite que los bloqueos DDL esperen a los bloqueos DML
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com