Suma o resta de fechas
Yo se que en SQLServer se puede sumar fechas, pero no se si se puede hacer lo mismo en interbase 6.
Se trata de sumar sumar meses o años a una fecha mediante sql, la fecha podria entrar como parametro o ya estar capturada en la base de datos. De antemano gracias por la ayuda. |
Interbase tiene soporte completo para aritmética de fechas. La fecha puede o no estar en la base de datos, así como la cantidad de dias a sumar/restar de esta.
Es tan simple como:
Saludos. ;) |
Cita:
se puede hacer de esta manera? Debi a ver sido mas especifico desde el principio. |
Espero y sirva...
checate la siguiente instrucción, la he probado en sql server y tal vez se soporte en Interbase..
DATEDIFF Devuelve el número de límites de fecha y hora que hay entre dos fechas especificadas. Sintaxis DATEDIFF ( datepart , startdate , enddate ) Argumentos datepart Es el parámetro que indica en qué parte de la fecha se calcula la diferencia. La tabla enumera las partes de las fechas y abreviaturas reconocidas por Microsoft® SQL Server™. Parte de la fecha------Abreviaturas ------------------------------------------ Año-------------------yy,yyyy Mes-------------------mm,m Dia del Año-------------dy,y Dia----------------------dd,d Semana-------------------wk,ww Horas------------------------hh Minutos --------------------mi,n Segundos----------------------ss,s Milisegundos--------------------ms startdate Es la fecha de comienzo para el cálculo. startdate es una expresión que devuelve un valor datetime o smalldatetime, o una cadena de caracteres con formato de fecha. Puesto que smalldatetime es exacto únicamente en el minuto, cuando se utiliza un valor smalldatetime los segundos y milisegundos son siempre 0. enddate Es la fecha final para el cálculo. enddate es una expresión que devuelve un valor datetime o smalldatetime, o una cadena de caracteres con formato de fecha. Tipos devueltos integer Ejemplo En este ejemplo se determina la diferencia en días entre la fecha actual y la fecha de publicación de los títulos de la base de datos pubs. USE pubsGOSELECT DATEDIFF(day, pubdate, getdate()) AS no_of_daysFROM titles |
Cita:
|
Hola Antrax, talvez me puedas orientar:
Estoy haciendo un procedimiento con Firebird 2.1 e IBExpert que debe calcular los intereses diarios de acuerdo a una diferencia entre fechas. He puesto en practica tu recomendacion a enigma, sin embargo al ejecutar el procedimiento me emite el siguiente mensaje: "OverFlow occurred during data type conversion. conversion error from string "7-Oct-2013" '. Te inserto parte del codigo del procedimiento para un mejor entendimiento. SELECT FC.FECHA_VENCE, FC.MONTO_INTER_CORR FROM FINAN_CUOTAS FC WHERE FC.ID_FINANCIAMIENTO = :CODIGO AND FC.PERIODO_VENCE = :PERIODO INTO :MONTO_INT_MES, :FECHA_VENCE; d = datediff(day,:FECHA_VENCE, :FECHA_CORTE); -- d es una variable declarada como entero, fecha_corte es un parametro designado como date if (d > 0) then begin MONTO_INTER_CORR_DIAS = ((:MONTO_INT_MES / :DIAS_MES) * :d); end Agrdezco de antemano la ayuda que me puedas (an) brindar. Saludos |
Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración :)
Recuerda poner los tags al código fuente, ejemplo: Gracias :) Por cierto, este hilo es de hace 13 años, crea uno nuevo siguiendo las normas del foro, gracias. |
Saltándome un poco las reglas, me gustaría preguntarte, ¿:FECHA_VENCE y :FECHA_CORTE, realmente son de tipo date, time o timestamp?, si no es así, quizá un cast te ayude, cambiando:
por
|
La franja horaria es GMT +2. Ahora son las 15:07:39. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi