Hola:
    Si tienes definido los campos tipo (DATE) entonces (Ejemplo):
SELECT DAYOFWEEK(FLDDAT1), QDFECH, DAYOFWEEK_ISO(FLDDAT1) FROM BIB/FILE.
 
p.d: DAYOFWEEK (1=Domingo...7=Sabado) [Americano]
        DAYOFWEEK_ISO (1=Lunes....7=Domingo)
================================================================
Si los campos no son tipo DATE que son 8.0 (aaaammdd) hay que hacer:
SELECT DAYOFWEEK(DATE(CAST(SUBSTRING(DIGITS(FLDNUM1), 7, 2 ) || '/' ||
                 SUBSTRING(DIGITS(FLDNUM1), 5, 2 ) || '/' ||         
                 SUBSTRING(DIGITS(FLDNUM1), 3, 2) AS DATE))),        
DAYOFWEEK_ISO(DATE(CAST(SUBSTRING(DIGITS(FLDNUM1), 7, 2 ) || '/' ||  
                 SUBSTRING(DIGITS(FLDNUM1), 5, 2 ) || '/' ||         
                 SUBSTRING(DIGITS(FLDNUM1), 3, 2) AS DATE))),        
PLDTE                                                              
FROM V81CWMSTRF/HPO                                                
WHERE PLDTE NOT IN(0, 99999999)                                                                                  
 
p.d.: !Ojo! por que el valor numerico de FLDNUM1 tiene que ser una fecha valida, ya que si no es así devuelve datos erroneos: ++++++, y produce el error en un programa de SQL0181:'El valor en la serie de fecha, hora o indicación de la hora no es Válido.
   El signo '/' es segun los separadores y formato (*ISO, ETC)  que se dá en el programa. (por omision coge como los del trabajo). En un SQL INTERACTIVO:

                     Start SQL Interactive Session (STRSQL)                     

                                                                               

 Teclee elecciones, pulse Intro.                                               

                                                                                

 Control de compromiso  . . . . .   *NONE   *NONE, *CHG, *CS, *ALL...    

 Naming convention  . . . . . . .   *SYS    *SYS, *SQL                   

 Statement processing . . . . . .   *RUN    *RUN, *VLD, *SYN             

 Library option . . . . . . . . .   *LIBL   Nombre, *LIBL, *USRLIBL...   

 List type  . . . . . . . . . . .   *ALL    *ALL, *SQL                   

 Data refresh . . . . . . . . . .   *ALWAYS *ALWAYS, *FORWARD            

 Allow copy data  . . . . . . . .   *YES    *YES, *OPTIMIZE, *NO         

 Formato de fecha . . . . . . . .   *JOB    *JOB, *USA, *ISO, *EUR...    

 Carácter separador de fecha  . .   *JOB    *JOB, /, ., ,, -, ' ', *BLANK

 Formato de hora  . . . . . . . .   *HMS     *HMS, *USA, *ISO, *EUR, *JIS 

 Carácter separador de hora . . .   *JOB     *JOB, :, ., ,, ' ', *BLANK   

 Decimal point  . . . . . . . . .   *JOB     *JOB, *PERIOD, *COMMA...     

 Sort sequence  . . . . . . . . .   *JOB     Nombre, *HEX, *JOB...        

   Library  . . . . . . . . . . .            Nombre, *LIBL, *CURLIB       

 Language identifier  . . . . . .   *JOB     *JOB, *JOBRUN...  


De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] En nombre de David
Enviado el: lunes, 17 de julio de 2006 13:55
Para: [email protected]
Asunto: Saber dia semana de una fecha

Tengo el problema siguiente necesito saber el día de la semana de una fecha dada si alguien tiene algo en COBOL o en CL seria de gran ayuda

 

Estoy con la versión 5.2 y no si la función dayofweek del SQL funciona

 

Alguien podría escribir la sentencia muchas gracias

 

Dpto.Informático

Foisa. SA

 

Responder a