PDA

Ver la Versión Completa : Separar el mes de un campo date


Camilo
17-11-2007, 19:05:18
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
...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:

Select datepart(mm, fecha)

Camilo
17-11-2007, 19:16:48
Mira yo lo intento asi en el OnCreate de una Form:

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
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:


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.



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.