SELECT CONVERT(CHAR(6),DATEADD(month,-1,CONVERT(DATETIME,:ls_yyyymm
,112)),112) + '16' ;
into :ls_start_dt
;
SELECT DATEPART(dw,(CONVERT(DATETIME, :ls_start_dt,112)))
into :li_start
;
SELECT DATEDIFF(day, CONVERT(DATETIME,:ls_start_dt ,112),
CONVERT(DATETIME,:ls_last_dt ,112))
into :li_between
;
SELECT CONVERT(CHAR(8),DATEADD(day,-1,CONVERT(DATETIME,:ls_start_dt
,112)),112),
CASE WHEN DATEPART(dw,(DATEADD(day,-1,CONVERT(DATETIME,:ls_start_dt
,112)))) = 1 OR
DATEPART(dw,(DATEADD(day,-1,CONVERT(DATETIME,:ls_start_dt ,112)))) =
7
THEN 'P' ELSE 'K' END,
CASE WHEN DATEPART(dw,(DATEADD(day,-1,CONVERT(DATETIME,:ls_start_dt
,112)))) = 1 OR
DATEPART(dw,(DATEADD(day,-1,CONVERT(DATETIME,:ls_start_dt ,112)))) =
7
THEN '0' ELSE '8' END
into :ls_day , :ls_day_type , :ls_wk_hour
;
2007/5/2, mellon <[EMAIL PROTECTED]>:
dear seniors
Mohon advisenya bagaimana menulis syntax ini memakai sql server didlm
powerbuilder?
// Start Date
select to_char( add_months( to_date( :ls_yyyymm , 'yyyymm' ) , -1 ) ,
'yyyymm' ) || '16'
into :ls_start_dt
from dual ;
// Start Day Number
select to_number( to_char( to_date( :ls_start_dt , 'yyyymmdd' ) , 'd' ) )
into :li_start
from dual;
// Between Day
select to_date( :ls_last_dt , 'yyyymmdd' ) - to_date( :ls_start_dt ,
'yyyymmdd' ) + 1
into :li_between
from dual ;
select to_char( to_date( :ls_start_dt , 'yyyymmdd' ) + :jnx - 1 ,
'yyyymmdd' ) ,
decode( to_char( to_date( :ls_start_dt , 'yyyymmdd' ) + :jnx - 1 , 'd' ) ,
'1' , 'P' ,'7','P', 'K' ) ,
decode( to_char( to_date( :ls_start_dt , 'yyyymmdd' ) + :jnx - 1 , 'd' ) ,
'1' , '0' ,
'7' , '0' , '8' )
into :ls_day , :ls_day_type , :ls_wk_hour
from dual ;
thanks sebelumnya