我想要重新編碼的表中的原始值始終是 01/01/1900。我想將其重新編碼為今天的日期。這只會返回空白,而不是今天的日期。知道我需要改變什麼嗎?
謝謝!
Transfers << Begin Data Update;
Transfers << Recode Column(
Transfers:OrderDate,
{Map Value( _rcOrig, {-126144000, short date(today())}, Unmatched( _rcNow ) )},
Update Properties( 1 ),
Target Column( :OrderDate )
);
Transfers << End Data Update;
若要對列中的項目重新編碼並將結果儲存到同一列,可以從下拉式選單中選擇「就地」 :

在 JSL 程式碼中,目標列將與輸入列相符。
嗯,為什麼代碼不起作用?
a) 短日期()將日期轉換為字串 - 但列是數字。
b) 即使刪除了短日期()也不起作用。是因為映射值()不允許使用表達式嗎?也許:

那麼讓我們來試試:
Transfers = New Table( "transfers",
Add Rows( 1 ),
Compress File When Saved( 1 ),
New Column( "OrderDate",
Format( "y/m/d"),
Set Values( [-126144000] )
)
);
Transfers << Begin Data Update;
Eval (Eval Expr(Transfers << Recode Column(
Transfers:OrderDate,
{Map Value( _rcOrig, {-126144000, Expr(today())}, Unmatched( _rcNow ) )},
Update Properties( 1 ),
Target Column( :OrderDate )
)));
Transfers << End Data Update;