SQL DATEADD函数 (sqlserver 只更新表中年份,不改其他时间)

本文介绍如何使用SQL DATEADD函数批量更新数据库表中的年份字段,操作适用于大量数据,无需手动修改。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

公司需要我更新下表中的时间,只是更新年份,其他不改,数据有几千条,肯定不可能手动更新了。。。。

所以我查了一下 有了这个方案:

update dbo.Dev_File set Factory_date=DATEADD(year,2, Factory_date);

update dbo.Dev_File set Install_date=DATEADD(year,2, Install_date);

update dbo.Dev_File set check_date=DATEADD(year,2,check_date);

以下是资料:

SQL DATEADD函数

语法


     
DATEADD ( datepart , number , date )

  将指定number时间间隔(有符号整数)与指定date的指定datepart相加后,返回该date

参数

datepart

  是与number相加的date部分。下表列出了所有有效的datepart参数。用户定义的变量等效项是无效的。

SQL DATEADD函数 - 小King - 小King的博客  

number

  是一个表达式,可以解析为与date的datepart相加的int。用户定义的变量是有效的。

  如果您指定一个带小数的值,则将小数截去且不进行舍入。


date

  是一个表达式,可以解析为time、date、smalldatetime、datetime、datetime2或datetimeoffset值。date可以是表达式、列表达式、用户定义的变量或字符串文字。如果表达式是字符串文字,则它必须解析为一个datetime值。为避免不确定性,请使用四位数年份。


返回类型

  字符串文字的返回数据类型为datetime。如果字符串文字的秒数小数位数超过三位 (.nnn) 或包含时区偏移量部分,将引发错误。

返回值

datepart 参数

  dayofyeardayweekday返回相同的值。

  每个datepart及其缩写都返回相同的值。

  如果datepart为month且date月份(八月份)比返回月份(九月份)的天数多,因而date中的日在返回月份中不存在(九月份的31号),则返回返回月份的最后一天。例如,9 月份有 30 天;因此,下面两个语句返回 2006-09-30 00:00:00.000:


     
SELECT DATEADD ( month , 1 , ' 2006-08-30 ' )
SELECT DATEADD ( month , 1 , ' 2006-08-31 ' )

number 参数

   number参数不能超出 int的范围。在下面的语句中, number的参数超出 int范围 1。将返回如下错误消息:“将表达式转换为数据类型 int 时出现算术溢出错误。”

      
SELECT DATEADD ( year , 2147483648 , ' 2006-07-31 ' );
SELECT DATEADD ( year , - 2147483649 , ' 2006-07-31 ' );

date 参数

   date参数不能增加至其数据范围之外的值。在下面的语句中,与 date值相加的 number值超出了 date数据类型的范围。将返回如下错误消息:“将值添加到 'datetime' 列导致溢出。”

      
SELECT DATEADD ( year , 2147483647 , ' 2006-07-31 ' );
SELECT DATEADD ( year , - 2147483647 , ' 2006-07-31 ' );

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值