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