Oracle - Primer dia del mes

 
Vista:

Primer dia del mes

Publicado por Daniel Rodas (21 intervenciones) el 03/01/2004 00:16:15
Hola, saludos. En Oracle Rdb 7.3.4
¿alguien sabe alguna funcion predefinida o bien alguna idea de como obtener el primer día del mes al hacer un select del sysdate from dual?,
algo asi como la funcion LAST_DAY.
Ya probe sysdate - 15 (por ejemplo) pero no se puede porque la fecha que uso es DATE VMS es decir en formato DD-MM-YYYY HH24:MI:SS;
Ya busque una funcion FIRST_DAY pero no hay.
Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Primer dia del mes

Publicado por rodrigo (75 intervenciones) el 05/01/2004 13:40:01
prueba esto..

select to_char(sysdate,'W') from dual

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Primer dia del mes

Publicado por Byron (300 intervenciones) el 05/01/2004 16:03:09
La funcion fist day no existe porque el primer dia del mes siempre es 1, los dias finales de cada mes son los que varian, solo es cuestion de concatenar to_date('01/'||to_char(fecha_evaluac,'mm/yyyy'),'dd/mm/yyyy').

select to_date('01/'||to_char(sysdate,'mm/yyyy'),'dd/mm/yyyy') from dual;

Saludos DTB
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Primer dia del mes

Publicado por Alex Eduardo Rivera Herrera (1 intervención) el 14/10/2010 16:22:48
Una opción más sencilla para obtener el primer día de cualquier mes, es con el script siguiente:

SELECT TRUNC(:dFechaINI, 'mm')
FROM DUAL

Donde :dFechaINI, es una variable de input que será solicitada que la ingreses cuando se ejecute el script.....Por ejemplo ingresa el 20-10-2010, y devolverá como fecha el 01-10-2010.

Espero haber sido un aporte........

Salu2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Primer dia del mes anterior

Publicado por Emanuel (1 intervención) el 06/07/2015 17:42:48
SELECT trunc(sysdate, 'mm') AS PRIMER_DIA_DEL_MES_EN_CURSO,
last_day(sysdate) AS ULTIMO_DIA_DEL_MES_EN_CURSO,
(SUBSTR(trunc(sysdate, 'mm'), 1, 4)
|| SUBSTR((sysdate)-(CASE WHEN (SELECT SUBSTR(last_day(sysdate),1,2) FROM DUAL) = 31 THEN 31 ELSE 30 END), 5, 1)
|| SUBSTR(trunc(sysdate, 'mm'), 6, 5)) AS PRIMER_DIA_DEL_MES_ANTERIOR,
(trunc(sysdate, 'mm')-1) AS ULTIMO_DIA_DEL_MES_ANTERIOR,
sysdate AS HOY
FROM DUAL;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Primer dia del mes

Publicado por Alixandro (63 intervenciones) el 13/07/2015 16:10:55
Incluye estas funciones en tu Package o crear individual.

--
Function PrimerDiaMesAnterior Return Date Is
Begin
Return (trunc(sysdate-30, 'mm'));
End;
--
Function UltimoDiaMesAnterior Return Date Is
Begin
Return( Trunc(Last_Day(Add_Months(Sysdate,-1))) );
End;
--
Function PrimerDiaMesActual Return Date Is
Begin
Return (trunc(sysdate, 'mm'));
End PrimerDiaMesActual;
--
Function UltimoDiaMesActual Return Date Is
Begin
Return( Trunc(Last_Day(Sysdate)) );
End UltimoDiaMesActual;
--
Function PrimerDiaMes(vFecha Date) Return Date Is
Begin
Return ( Trunc(vFecha, 'mm') );
End PrimerDiaMes;
--
Function UltimoDiaMes(vFecha Date) Return Date Is
Begin
Return( Trunc(Last_Day(vFecha)) );
End UltimoDiaMes;
--
Function UltimoDiaMesAnte(pFecha date) Return Date Is
Begin
Return( Trunc(Last_Day(Add_Months(pFecha,-1))) );
End UltimoDiaMesAnte;
--
Function PrimerDiaDelAno(pFecha Date Default Sysdate) Return Date Is
vFecha Date := Null;
Begin
If pFecha Is Null Then
vFecha := Sysdate;
Else
vFecha := pFecha;
End If;
Return(Trunc(vFecha,'year'));
End PrimerDiaDelAno;
--
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Primer y ultimo dia de la semana

Publicado por Geovanni Sagastime (1 intervención) el 11/08/2017 18:13:57
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
select to_char(to_date(sysdate),'IW') SEMANA,
       UPPER(to_char(sysdate,'day','NLS_DATE_LANGUAGE = SPANISH')) DIA,
       TO_CHAR(DECODE(LTRIM(RTRIM(UPPER(to_char(sysdate,'day','NLS_DATE_LANGUAGE = SPANISH')))),
             'LUNES',SYSDATE,
             'MARTES',SYSDATE-1,
             'MIERCOLES',SYSDATE-2,
             'JUEVES',SYSDATE-3,
             'VIERNES',SYSDATE-4,
             'SABADO',SYSDATE-5,
             'DOMINGO',SYSDATE-6),'DD/MM/YYYY') FECHA_INICIAL,
       TO_CHAR(DECODE(LTRIM(RTRIM(UPPER(to_char(sysdate,'day','NLS_DATE_LANGUAGE = SPANISH')))),
             'LUNES',SYSDATE+6,
             'MARTES',SYSDATE+5,
             'MIERCOLES',SYSDATE+4,
             'JUEVES',SYSDATE+3,
             'VIERNES',SYSDATE+2,
             'SABADO',SYSDATE+1,
             'DOMINGO',SYSDATE),'DD/MM/YYYY') FECHA_FINAL
              from dual;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar