更新MS访问中所有记录的年份

时间:2012-10-10 22:14:09

标签: sql ms-access ms-access-2010

我在访问LAST_ORDER_DTSALE_DT中有两个日期/时间列 我想将所有销售年dates(SALE_DT)更新为LAST_ORDER_DT

我尝试了以下语句,它引发了语法错误。

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

请帮忙。

1 个答案:

答案 0 :(得分:1)

据我了解您的问题,您可能SALE_DT #2011-09-30# LAST_ORDER_DT #2012-10-10#,并且您希望SALE_DT更改为{{} 1}}。

如果是这种情况,您可以使用#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_DT可以包含Null,则应从LAST_ORDER_DT查询中排除这些行:

UPDATE