declaracion de variable y asignacion de valor

06/10/2005 - 22:11 por nelva | Informe spam
Estimados,

Estoy tratando de asignar a una variable tipo datetime una fecha, en la que
es estático el dia y el mes, lo unico que variara es el año en curso, la
asignacion que estoy usando me manda error.. Alguna Idea de como hacerlo
les detallo el Procedimiento almacenado.
CREATE PROCEDURE [OWNER]."PCA_AGUINALDO"
@FECHAFIN DATETIME
SET @FECHAFIN = '30/11/' &YEAR(GETDATE())
AS
SELECT RTRIM(Funcionarios.FUN_Nombre) + ' ' + Funcionarios.FUN_Apellidos
AS funcionario, Funcionarios.FUN_Fecha_Ingreso, Direcciones.DIR_ID,
Direcciones.DIR_Nombre, Cargos.CAR_ID,
Cargos.CAR_Nombre, Funcionarios.FUN_Salario, Funcionarios.FUN_Activo,
Funcionarios.FUN_ID,
DATEDIFF(month, Funcionarios.FUN_Fecha_Ingreso,
@FECHAFIN) * 30 + DAY(@FECHAFIN) - DAY(Funcionarios.FUN_Fecha_Ingreso)
- (CASE WHEN day(dbo.Funcionarios.FUN_Fecha_Ingreso)

= 30 AND day(@FECHAFIN) = 31 THEN 1 ELSE 0 END) AS antiguedad


FROM Funcionarios LEFT OUTER JOIN
Direcciones ON Funcionarios.DIR_ID Direcciones.DIR_ID LEFT OUTER JOIN
Cargos ON Funcionarios.CAR_ID = Cargos.CAR_ID
WHERE (Funcionarios.FUN_Activo = 1)
GO

Preguntas similare

Leer las respuestas

#1 Maxi
06/10/2005 - 22:22 | Informe spam
Hola, proba asi


CREATE PROCEDURE [OWNER]."PCA_AGUINALDO"
@FECHAFIN DATETIME
SET @FECHAFIN = '30/11/' + convert(VARCHAR(4),YEAR(GETDATE()))

...


bye





Salu2
Maxi


"nelva" escribió en el mensaje
news:
Mostrar la cita
#2 Alejandro Mesa
06/10/2005 - 22:28 | Informe spam
Nelva,

Chequea la funcion "convert" en los libros en linea. Fijate en los estilos
112 y 126. Si las constantes de fecha las manejas usando estos formatos, sql
server siempre interpretara correctamente el dato como fecha sin importar el
seteo de "set dateformat" o el lenguaje usado en la instalacion.

En la creacion de un sp, el codigo comienza despues de la palabra clave "AS"
y el operador de concatenacion es "+" y no "&".

Mostrar la cita
CREATE PROCEDURE [OWNER]."PCA_AGUINALDO"
@FECHAFIN DATETIME
AS

SET @FECHAFIN = ltrim(YEAR(GETDATE())) + '1130'
...


AMB



"nelva" wrote:

Mostrar la cita
#3 nelva
07/10/2005 - 00:21 | Informe spam
Gracias . Excelente

Tengo otra pregunta. A la variable declarada ya le he asignado un valor,
como hago para omitir que me envie la pantalla de solicitud de parametros de
entrada. NO deberia por que ya lo defini en el SET.

ALTER PROCEDURE dbo.PCA_AGUINALDO

@FECHAFIN DATETIME AS

SET @FECHAFIN = ltrim(YEAR(GETDATE())) + '1130'

SELECT @fechafin as fecha, RTRIM(Funcionarios.FUN_Nombre) + ' ' +
Funcionarios.FUN_Apellidos AS funcionario, Funcionarios.FUN_Fecha_Ingreso,

Direcciones.DIR_ID, Direcciones.DIR_Nombre, Cargos.CAR_ID,
Cargos.CAR_Nombre, Funcionarios.FUN_Salario,

Funcionarios.FUN_Activo, Funcionarios.FUN_ID, DATEDIFF(month,
Funcionarios.FUN_Fecha_Ingreso, @FECHAFIN)

* 30 + DAY( @FECHAFIN) - DAY(Funcionarios.FUN_Fecha_Ingreso) - (CASE WHEN
day(dbo.Funcionarios.FUN_Fecha_Ingreso) >= 30 AND

day(@FECHAFIN) = 31 THEN 1 ELSE 0 END) AS antiguedad

FROM Funcionarios LEFT OUTER JOIN

Direcciones ON Funcionarios.DIR_ID = Direcciones.DIR_ID LEFT OUTER JOIN

Cargos ON Funcionarios.CAR_ID = Cargos.CAR_ID

WHERE (Funcionarios.FUN_Activo = 1)

"Alejandro Mesa" escribió en el
mensaje news:
Mostrar la cita
sql
Mostrar la cita
el
Mostrar la cita
"AS"
Mostrar la cita
que
Mostrar la cita
Funcionarios.FUN_Apellidos
Mostrar la cita
day(dbo.Funcionarios.FUN_Fecha_Ingreso)
Mostrar la cita
#4 Alejandro Mesa
07/10/2005 - 02:15 | Informe spam
Nelva,

Mostrar la cita
No se a que te refieres cuando dices "pantalla de solicitud de parametros de
entrada", nos puedes decir a que pantalla te refieres?

Para asignar un valor por defecto a un parametro, le debes asignar una
constante en la misma declaracion. No se pueden usar funciones.

ALTER PROCEDURE dbo.PCA_AGUINALDO
@FECHAFIN DATETIME = '20051006'
AS
...


AMB

"nelva" wrote:

Mostrar la cita
Ads by Google
Search Busqueda sugerida