cancel
Showing results for 
Search instead for 
Did you mean: 

Querie vencimientos por fechas

Former Member
0 Kudos

Tengo el siguiente codigo en el cual me muestra la informacion de los vencimientos de mis vehiculos. Lo que deseo es que me muestre el listado quitando los que sus vencimientos sean igual a la fecha del dia o esten a 15 dias antes.

La condicion de los 15 dias lo consegui con la siguiente instruccion:

DECLARE @FECHAACTUAL DATETIME;

SET @FECHAACTUAL = CONVERT (VARCHAR, GETDATE()-15, 120)

si lo pruebo solo me sale bien me devuelve la fecha que requiero, pero cuando lo corro en mi querie me bota el siguiente error

Msg 241, Level 16, State 1, Line 3

Conversion failed when converting date and/or time from character string.

Alguna sugerencia?? en la ultima parte de mi codigo estaria colocando las condicionales para las fechas

{CODE DECLARE @FECHAACTUAL DATETIME;

SET @FECHAACTUAL = CONVERT (VARCHAR, GETDATE()-15, 120)

SELECT

T0.[U_TCTIPO] AS 'TIPO',

T0.[U_TCPLACANTIG] AS 'PLACA ANTIGUA',

T0.[U_TCPLACNUEV] AS 'PLACA NUEVA',

T0.[U_TCPROPIED] AS 'PROPIEDAD',

T0.[U_TCSOAT] AS 'SOAT',

T0.[U_TCHABVEHNAC] AS 'CERTIF. HABILITACION VEH NACIONAL',

T0.[U_TCFECVENC] AS 'FECHA VENC CERTF HABIL VEH NACIONAL',

T0.[U_TCCOMANDI] AS 'CERTIF HABIL VEH COMUN ANDINA INTERNACIONAL',

T0.[U_TCFVENCOMAND] AS 'FECHA VENC CERTIF HABIL VEH COMUN ANDINA INTERNACIONAL',

T0.[U_TCCEROPEMUNLIMA] AS 'CERTIF OPERACION MUNIC DE LIMA-LOCAL',

T0.[U_TCFECVENCCERTOPE] AS 'FECHA CERTIFICADO DE OPERACION MUNIC DE LIMA-LOCAL',

T0.[U_TCCERTFINSTEC] AS 'CERTIF INSPECCION TECNICA VEHICULAR',

T0.[U_TCFVCERTFINTECVE] AS 'CERTIF INSPECCION TECNICA VEHICULAR',

T0.[U_TCNROLEASING] AS 'NUMERO LEASING',

T0.[U_TCVENCLEASING] AS 'VENCIMIENTO LEASING',

T0.[U_TCPOLSEGRIMAC] AS 'NUM POLIZA SEGURO RIMAC',

T0.[U_TCVENCPOLSEGRIMAC] AS 'FECHA VENC NUM POLIZA SEGURO RIMAC',

T0.[U_TCCTAPLACA] AS 'CUENTAN CON PLACA',

T0.[U_TCTARJACTARCH] AS 'TARJ ACT EN ARCHIVO',

T0.[U_TCPLACSUNARP] AS 'INFO PLACA SUNARP',

T0.[U_TCOBSERV] AS 'OBSERVACIONES'

FROM .[@TC_VENCIMIENTOS] T0

WHERE

@FECHAACTUAL >= CONVERT(DATETIME, T0.[U_TCSOAT], 105) OR

@FECHAACTUAL >= CONVERT(DATETIME, T0.[U_TCFECVENC], 105) OR

@FECHAACTUAL >= CONVERT(DATETIME, T0.[U_TCFVENCOMAND], 105) OR

@FECHAACTUAL >= CONVERT(DATETIME, T0.[U_TCFECVENCCERTOPE], 105) OR

@FECHAACTUAL >= CONVERT(DATETIME, T0.[U_TCFVCERTFINTECVE], 105) OR

@FECHAACTUAL >= CONVERT(DATETIME, T0.[U_TCVENCLEASING], 105) OR

@FECHAACTUAL >= CONVERT(DATETIME, T0.[U_TCVENCPOLSEGRIMAC], 105) CODE}

Edited by: Luis Alberto Rojas Ayllón on Mar 7, 2012 6:01 PM

Edited by: Luis Alberto Rojas Ayllón on Mar 7, 2012 6:06 PM

Edited by: Luis Alberto Rojas Ayllón on Mar 7, 2012 6:07 PM

Accepted Solutions (0)

Answers (1)

Answers (1)

former_member188440
Active Contributor
0 Kudos

Y si ya estas haciendo el convert, porque no dejas tu variable como nvarchar ?

Former Member
0 Kudos

te refieres a esta instruccion??

SET @FECHAACTUAL = CONVERT (VARCHAR, GETDATE()-15, 120)

Lo que haria aca es capturo la fecha del sistema quito 15 dias y lo guardo en un varchar o ya no seria necesario colocarle el varchar y solo con el convert

y en la parte de abajo tendria q variar algo? al parecer no hago la comparacion para que no bote error

Former Member
0 Kudos

Ya logre evitar ese error, en la fecha del dia, era cuestion del formato de lectura que le estaba dando. Esa parte ya me lee bien, pero cuando lo ejecuto si bien me sale el resultado me esta mostrando todos y para un ejemplo modifique la fecha de uno y le puse la de hoy dia para que no me lo muestre pero igual me lo visualiza.

La ultima parte de mi querie no me esta mostrando, alguna ayuda

DECLARE @FECHAACTUAL VARCHAR(10);

SET @FECHAACTUAL = CONVERT(VARCHAR(10), GETDATE()-15, 104)

SELECT

T0.[U_TCTIPO] AS 'TIPO',

T0.[U_TCPLACANTIG] AS 'PLACA ANTIGUA',

T0.[U_TCPLACNUEV] AS 'PLACA NUEVA',

T0.[U_TCPROPIED] AS 'PROPIEDAD',

T0.[U_TCSOAT] AS 'SOAT',

T0.[U_TCHABVEHNAC] AS 'CERTIF. HABILITACION VEH NACIONAL',

T0.[U_TCFECVENC] AS 'FECHA VENC CERTF HABIL VEH NACIONAL',

T0.[U_TCCOMANDI] AS 'CERTIF HABIL VEH COMUN ANDINA INTERNACIONAL',

T0.[U_TCFVENCOMAND] AS 'FECHA VENC CERTIF HABIL VEH COMUN ANDINA INTERNACIONAL',

T0.[U_TCCEROPEMUNLIMA] AS 'CERTIF OPERACION MUNIC DE LIMA-LOCAL',

T0.[U_TCFECVENCCERTOPE] AS 'FECHA CERTIFICADO DE OPERACION MUNIC DE LIMA-LOCAL',

T0.[U_TCCERTFINSTEC] AS 'CERTIF INSPECCION TECNICA VEHICULAR',

T0.[U_TCFVCERTFINTECVE] AS 'CERTIF INSPECCION TECNICA VEHICULAR',

T0.[U_TCNROLEASING] AS 'NUMERO LEASING',

T0.[U_TCVENCLEASING] AS 'VENCIMIENTO LEASING',

T0.[U_TCPOLSEGRIMAC] AS 'NUM POLIZA SEGURO RIMAC',

T0.[U_TCVENCPOLSEGRIMAC] AS 'FECHA VENC NUM POLIZA SEGURO RIMAC',

T0.[U_TCCTAPLACA] AS 'CUENTAN CON PLACA',

T0.[U_TCTARJACTARCH] AS 'TARJ ACT EN ARCHIVO',

T0.[U_TCPLACSUNARP] AS 'INFO PLACA SUNARP',

T0.[U_TCOBSERV] AS 'OBSERVACIONES'

FROM .[@TC_VENCIMIENTOS] T0

WHERE

@FECHAACTUAL >= CONVERT(VARCHAR, T0.[U_TCSOAT], 103) OR

@FECHAACTUAL >= CONVERT(VARCHAR, T0.[U_TCFECVENC], 103) OR

@FECHAACTUAL >= CONVERT(VARCHAR, T0.[U_TCFVENCOMAND], 103) OR

@FECHAACTUAL >= CONVERT(VARCHAR, T0.[U_TCFECVENCCERTOPE], 103) OR

@FECHAACTUAL >= CONVERT(VARCHAR, T0.[U_TCFVCERTFINTECVE], 103) OR

@FECHAACTUAL >= CONVERT(VARCHAR, T0.[U_TCVENCLEASING], 103) OR

@FECHAACTUAL >= CONVERT(VARCHAR, T0.[U_TCVENCPOLSEGRIMAC], 103)

Edited by: Luis Alberto Rojas Ayllón on Mar 8, 2012 7:17 PM

Edited by: Luis Alberto Rojas Ayllón on Mar 8, 2012 7:21 PM

former_member188440
Active Contributor
0 Kudos

No es por el tipo de formato que le asignas a


SET @FECHAACTUAL = CONVERT(VARCHAR(10), GETDATE()-15, 104)

Aqui te muestra 22.02.2012

y abajo en tus clausulas where te muestra la fecha en formato

22/02/2012

Former Member
0 Kudos

esta bien ese formato lo que pasa que en mi tabla en la columna de fecha lo colocan de la siguiente manera DD.MM.YYYY con puntos

es por eso que el getdate lo capturo de esa manera

Si yo corro

SELECT CONVERT(VARCHAR, T0.[U_TCSOAT], 103)

FROM .[@TC_VENCIMIENTOS] T0

me muestra en el formato DD.MM.YYYY

Edited by: Luis Alberto Rojas Ayllón on Mar 8, 2012 8:26 PM

Edited by: Luis Alberto Rojas Ayllón on Mar 8, 2012 8:27 PM