Pasas FECHA DateTime a Char
Publicado por Gabriel (2 intervenciones) el 28/04/2021 19:38:32
Muy buenas tengo un Procedimiento que al ingresar datos de la fecha esta debe estar en "dd/mm/yyyy", pero en el procedimiento por las características para la consulta deben estar en "yyyymmdd"
El error que muestra al ejecutar dicho SP es:
Esto es lo que se hace, para ver los datos:
gracias por la claración
El error que muestra al ejecutar dicho SP es:
1
2
Msg 214, Level 16, State 2, Procedure sp_executesql, Line 1
Procedure expects parameter '@statement' of type 'ntext/nchar/nvarchar'.
Esto es lo que se hace, para ver los datos:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE ID = OBJECT_ID('[dbo].Cat_CtaCte_Efectivo') and OBJECTPROPERTY(id, 'IsProcedure') = 1)
DROP PROCEDURE [dbo].[Cat_CtaCte_Efectivo];
GO
CREATE PROCEDURE [dbo].[sp_nuevo]
@strEmpId as Varchar(50),
@fechaini as Datetime, --VarChar(10),
@fechafin as DateTime --VarChar(10)
AS
BEGIN
--#20
/*DECLARACION DE VARIABLES*/
DECLARE @ENTER CHAR(1)
DECLARE @Cat CHAR(1)
DECLARE @Ven VARCHAR(3)
DECLARE @Esta VARCHAR(1)
DECLARE @True VARCHAR(4)
DECLARE @CtaCte VARCHAR(10)
DECLARE @Fpago VARCHAR(8)
DECLARE @strSQL VARCHAR(8000)
DECLARE @FInici VARCHAR(8)
DECLARE @FFinal VARCHAR(8) --='20161231'
/*INICIALIZAR VARIABLES*/
SELECT @Cat = ''''
SELECT @Ven = 'VEN'
SELECT @Esta = 'A'
SELECT @True = 'True'
SELECT @CtaCte = 'ConCtaCte'
SELECT @Fpago = 'Efectivo'
SELECT @strSQL=''
SELECT @ENTER=CHAR(13)
SELECT @FInici =cast(year(@fechaini)as varchar(4)) + cast(month(@fechaini)as varchar(2)) + cast(day(@fechaini)as varchar(2))
--SELECT @FInici = CONVERT (DateTime, @fechaini, 112)
SELECT @FFinal = CONVERT (DateTime, @fechafin, 112)
/*INICIO DE LA CONSULTA*/
SELECT @strSQL = @strSQL + 'USE ' + @strEmpId + '' + @ENTER
--#49
SELECT @FInici
SELECT @strSQL = @strSQL + 'SELECT datos1, ' + @ENTER
SELECT @strSQL = @strSQL + 'datos2, ' + @ENTER
SELECT @strSQL = @strSQL + 'datos3 ' + @ENTER
SELECT @strSQL = @strSQL + 'FROM tabla1 ' + @ENTER
SELECT @strSQL = @strSQL + 'RIGHT JOIN tabla2 RIGHT JOIN xxxxxxxxx' + @ENTER
SELECT @strSQL = @strSQL + 'INNER JOIN tabla3 ON xxxxxxxxxxxxxxxxxxxxxxx ' + @ENTER
SELECT @strSQL = @strSQL + 'LEFT JOIN tabla4 ON xxxxxxxxxxxxxxxx ' + @ENTER
SELECT @strSQL = @strSQL + 'LEFT JOIN tabla5 ON xxxxxxxxxxxxxxxxxxxxxxx ' + @ENTER
SELECT @strSQL = @strSQL + 'LEFT JOIN tabla5 ON xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ' + @ENTER
SELECT @strSQL = @strSQL + 'WHERE datoss1 = ' + @Cat + @Ven + @Cat + '' + @ENTER
SELECT @strSQL = @strSQL + 'AND datoss2 = ' + @Cat + @Esta + @Cat + '' + @ENTER
SELECT @strSQL = @strSQL + 'AND datoss3 = ' + @Cat + @True + @Cat + '' + @ENTER
SELECT @strSQL = @strSQL + 'AND (datoss4 = ' + @Cat + @CtaCte + @Cat + ' Or vntFPagoTxn.fpaId = ' + @cat + @Fpago + @Cat + ') ' + @ENTER
SELECT @strSQL = @strSQL + 'AND datoss5 Is Not Null ' + @ENTER
SELECT @strSQL = @strSQL + 'AND fecha Between ' + @Cat + @FInici + @Cat + ' And ' + @cat + @FFinal + @Cat + '' + @ENTER
--SELECT @strSQL = @strSQL + 'AND fecha Between ' + @FInici + ' And ' + @FFinal + @ENTER
/*EJECUCION DE LA CONSULTA*/
EXEC (@strSQL) IF @@ERROR <> 0 BEGIN RETURN END
END
gracias por la claración
Valora esta pregunta


0