1

アクセスに 2 つの日付/時刻列がLAST_ORDER_DTあり、すべての売上の年SALE_DT を次の年に更新したいdates(SALE_DT)LAST_ORDER_DT

次のステートメントを試しましたが、構文エラーがスローされました。

UPDATE ORDERS_TEMP SET YEAR(SALE_DT)=YEAR(LAST_ORDER_DT)

助けてください。

4

1 に答える 1

1

あなたの質問を理解しているように、あなたはSALE_DTof#2011-09-30#LAST_ORDER_DTofを持っている可能性があり、に変更し#2012-10-10#たい.SALE_DT#2012-09-30#

その場合は、DateSerial()関数を使用しSALE_DTて、適切な年、月、日の値から再構築できます。

UPDATE ORDERS_TEMP
SET SALE_DT =
    DateSerial(
        Year(LAST_ORDER_DT),
        Month(SALE_DT),
        Day(SALE_DT)
        );

値の時刻が真夜中の場合、これは機能するはずSALE_DTです。時刻がそれ以外の場合は、その部分も追加する必要があります。

UPDATE ORDERS_TEMP
SET SALE_DT =
    DateSerial(
        Year(LAST_ORDER_DT),
        Month(SALE_DT),
        Day(SALE_DT)
        )
    + TimeValue(SALE_DT);

SALE_DTLAST_ORDER_DTに Null を含めることができる場合は、これらの行をUPDATEクエリから除外する必要があります。

WHERE SALE_DT Is Not Null AND LAST_ORDER_DT Is Not Null
于 2012-10-11T00:35:53.770 に答える