Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-12-2008
Avatar de paladincubano
paladincubano paladincubano is offline
Miembro
 
Registrado: jul 2007
Posts: 147
Poder: 17
paladincubano Va por buen camino
Numero de semana de un mes

Hola foreros.
En delphi, en la unit DateUtils hay una funcion que me devuelve de una fecha dada, su respectivo numero de semana en el mes (1,2,3,4 o 5).
La funcion es

function WeekOfTheMonth(const AValue: TDateTime): Word;

Me gustaria saber el equivalente en SQL. O sea, tengo un campo fecha en una tabla, me gustaria que cuando hiciera un SELECT me devolviera en un campo, ese valor, el numero de la semana en ese mes.

Serial algo asi

SQL.ADD('Select WeekOfTheMonth(FechaContrato) as A
Where A=')+NumeroSemana.Text;

Gracias.
Responder Con Cita
  #2  
Antiguo 01-12-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
en SQL Server:
Código SQL [-]
Select DatePart(ww, getdate())
__________________

Responder Con Cita
  #3  
Antiguo 01-12-2008
Avatar de paladincubano
paladincubano paladincubano is offline
Miembro
 
Registrado: jul 2007
Posts: 147
Poder: 17
paladincubano Va por buen camino
Muchas gracias, manana cuando llegue al curro lo probare. Ahora en casa no tengo SQL.
Ya te digo si me funciona.
Editado:
Buscando en la ayuda he visto que no me sirve para lo que quiero. Ya que eso devuelve la semana del AÑO, y lo que me interesa que devuelva es la semana del MES.
Prueba la funcion que te di anteriormente para que veas lo que quiero.
saludos.
Responder Con Cita
  #4  
Antiguo 01-12-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
tienes razón, no te va a servir, no me fije en el detalle que era "semana del mes", no semana del año...
__________________

Responder Con Cita
  #5  
Antiguo 01-12-2008
Avatar de paladincubano
paladincubano paladincubano is offline
Miembro
 
Registrado: jul 2007
Posts: 147
Poder: 17
paladincubano Va por buen camino
He encontrado dos formas.
Manana las probare y luego comento cual me sirvio, tiene que coincidir con el mismo valor que me devuelva la funcion en delphi, porque si no me trae problemas.

Pimer ejemplo:
No existe una funcion directa para hacer el calculo pero puedes usar el siguiente truco:
datepart(week, data) calcula el numero de la semana dentro del agno. El truco consiste en hallar la diferencia entre el numero de semana del primer dia del mes de la fecha que quieres calcular y la propia fecha.
El primer dia del mes de la fecha actual es:
select dateadd(dd,-day(getdate())+1,getdate())
Por tanto el numero de semana (para la fecha actual) se calcularia asi:
select datepart(week,getdate())
- datepart(week, dateadd(dd,-day(getdate())+1,getdate()))+1


2do ejemplo:
Con CONVERT(week,CAMPO_FECHA) puedes saber la semana del año. Si lo que quieres es saber la posición de la semana dentro del mes, es el resto de dividir este numero por 4.
SELECT CONVERT(week,CAMPO_FECHA)%4 te dá el modulo, es decir, el resto que buscas.


Si alguien ha probado alguno con buenos resultados me lo diga.
Gracias.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Numero del dia de la semana molinero1 Varios 7 21-01-2008 13:24:32
Calcula El Numero de Semana Actual Rodo_Rodo Varios 4 13-05-2007 19:58:24
Regresar el numero de semana zvf OOP 2 28-11-2006 19:35:29
De numero de semana a mes correspondiente ANG4L Varios 2 08-06-2006 01:12:11
calcular el numero de semana remialdo Varios 7 11-09-2005 08:02:05


La franja horaria es GMT +2. Ahora son las 16:07:34.


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
Copyright 1996-2007 Club Delphi