Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Separar el mes de un campo date (https://www.clubdelphi.com/foros/showthread.php?t=50442)

Camilo 17-11-2007 19:05:18

Separar el mes de un campo date
 
Hola amigos: primero aclaro que busque en el historial del foro y por google y las respuestas encontradas respecto al tema no me ayudaron aunque son parecidas. Supongo que es falta de pericia para adecuarlas a mi problema.

Tengo una tabla llamada "Tarifas_ISS" dentro de ella hay un campo llamado "vencimiento" ese vencimiento es un campo tipo "Date" (Tabla echa en paradox).
Necesito que cuando en una form yo llame a ese registro por un campo llamado "documento" (Eso ya esta resuelto); en un Dbedit me aparezca solamente el numero que corresponde al mes que esta grabado en el campo "vencimiento" del registro.

E intentado el decodedate pero solo me funciona con la fecha del sistema y no con fechas almacenadas en dicho campo.

USo D-7.

Gracias por la ayuda.

ContraVeneno 17-11-2007 19:09:52

Cita:

Empezado por Camilo (Mensaje 246847)
...intentado el decodedate pero solo me funciona con la fecha del sistema y no con fechas almacenadas en dicho campo...

¿por que no funcionó? debería de tener el mismo funcionamiento, es decir, decodedate recibe una fecha como parámetro, si no te funcionó es porque no le pasaste una fecha.

en fin, la función formatdatetime con un formato "MM" te podría funcionar tambien.

¿Paradox no tiene una función "month" o algo similar?

En SQL Server sería:

Código SQL [-]
Select datepart(mm, fecha)

Camilo 17-11-2007 19:16:48

Mira yo lo intento asi en el OnCreate de una Form:
Cita:

var
Fecha: TDate;
Ano, mes, dia: Word;
begin
TableTarifas_ISs.Open;
Fecha:= Now;
DecodeDate(Fecha, ano, mes, dia);
DbEdit12.Text:= IntToStr(dia);
DbEdit13.Text:= IntToStr(mes);
DbEdit14.Text:= IntToStr(ano);
Pero el tema es que "Fecha:= Now;" es la que no he podido reemplazar por el campo que corresponde.

Gracias.

ContraVeneno 17-11-2007 19:23:34

Cita:

Empezado por Camilo
Pero el tema es que "Fecha:= Now;" es la que no he podido reemplazar por el campo que corresponde.

:confused: ¿porque no? ¿te marca error? ¿cuál? :confused:
Código Delphi [-]
  
  Fecha := TableTarifas_ISs.FieldByName('Tufecha').AsDateTime;
  //directo:
  DecodeDate( TableTarifas_ISs.FieldByName('Tufecha').AsDateTime, ano, mes, dia);

Camilo 17-11-2007 19:28:38

Contraveneno eres un "AS"

Me funciona perfectamente; Mil Gracias

egarc 20-11-2007 00:52:43

Una manera más fácil es usar las funciones de fechas del SQL.

Código SQL [-]
 
select Nro, Concepto, MonthOf(fecha) as Mes, DayOf(Fecha) as Día 
from 
Tarifa
order by YearOf(Fecha)

Camilo 20-11-2007 00:57:10

Gracias Egarc por tu interes y aporte; tambien funciono.


La franja horaria es GMT +2. Ahora son las 09:19:57.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi