在sql server的同一个表中从日期列更新月份列

bzzcjhmw  于 2021-07-29  发布在  Java
关注(0)|答案(2)|浏览(323)

我有一个数据,它有一个事务日期[datetime],我正在尝试有一个查询,该查询转到每个事务行,根据事务日期获取月份和年份,并更新月份列以获取大量事务。
例子

ID      Trans_Date              Month
01      01/01/2020              012020
02      02/01/2020              012020
03      01/05/2020              052020

有什么建议吗?

jyztefdp

jyztefdp1#

使用计算列执行此操作:

alter table t add month as (format(trans_date, 'MMyyyy'));

你可以用一个 update . 但这是愚蠢的。这些值在新行或更新现有行时将不正确。对于计算列,值总是正确的。
当然,你可以把这个表达成 update :

update t
    set month = format(trans_date, 'MMyyyy');

如果某些值已经正确,则添加 where 条款: where month <> format(trans_date, 'MMyyyy') .

eni9jsuy

eni9jsuy2#

嗨,我就是这么想的:
更新[db].[dbo].[table]设置[month]=格式(trans_datetime,'yyyy0mm');

相关问题