我在访问LAST_ORDER_DT
和SALE_DT
中有两个日期/时间列
我想将所有销售年dates(SALE_DT)
更新为LAST_ORDER_DT
我尝试了以下语句,它引发了语法错误。
UPDATE ORDERS_TEMP SET YEAR(SALE_DT)=YEAR(LAST_ORDER_DT)
请帮忙。
答案 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