viernes, 28 de octubre de 2016

SQL - Saber que se esta ejecutando en BD desde APP.

DECLARE @BD VARCHAR(100)

--SET @BD = 'leasecom'
SET @BD = 'leaseoper'



select b.name, a.last_execution_time
from sys.dm_exec_procedure_stats a
inner join sys.objects b on a.object_id = b.object_id
where DB_NAME(a.database_ID) = LTRIM(RTRIM(@BD))

ORDER BY 2 DESC

martes, 18 de octubre de 2016

SQL - Último dia del MES en base a una fecha

USE [leaseoper]
GO

/*
       Creado       : 20161018 JC
       Historial    : Ultimo día del mes
       Ejecución    : SELECT leaseoper.dbo.fn_termino_mes (GETDATE())
*/

ALTER FUNCTION fn_termino_mes     (
       @fecha SMALLDATETIME 
       )
RETURNS SMALLDATETIME
AS
BEGIN

DECLARE @inicio_mes        SMALLDATETIME,
             @termino_mes SMALLDATETIME,
             @fecha_mes          CHAR(6)

SELECT @fecha_mes   = CONVERT(CHAR(06), DATEADD(MONTH, - 1, @fecha), 112)
SELECT @inicio_mes  = CONVERT(SMALLDATETIME, @fecha_mes + '01', 112) --primer dia del mes 
SELECT @termino_mes = DATEADD(DAY, - 1, DATEADD(MONTH, 1, @inicio_mes)) --ultimo dia del mes

RETURN @termino_mes
END

SQL - Primer dia del MES en base a una fecha


USE [leaseoper]
GO

/*
       Creado       : 20161018 JC
       Historial    : Primer día del mes
       Ejecución    : SELECT leaseoper.dbo.fn_inicio_mes (GETDATE())
*/


ALTER FUNCTION fn_inicio_mes (
       @fecha SMALLDATETIME )
RETURNS SMALLDATETIME
AS
BEGIN

DECLARE @inicio_mes SMALLDATETIME,
             @fecha_mes CHAR(6)

SELECT @fecha_mes   = CONVERT(CHAR(06), DATEADD(MONTH, - 1, @fecha), 112)
SELECT @inicio_mes  = CONVERT(SMALLDATETIME, @fecha_mes + '01', 112) --primer dia del mes de proceso


RETURN @inicio_mes

END