更新SQL某个表中的时间字段中的一部分数据整体增加小时数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了更新SQL某个表中的时间字段中的一部分数据整体增加小时数相关的知识,希望对你有一定的参考价值。
更新这部分数据select * from dbo.lssjtemp where xfsj between '2015-03-31 19:00:00' and '2015-03-31 23:59:59'整体增加3个小时 其他在这个范围之外的数据不动
update lssjtemp set xfsj = dateadd(day,3,xfsj) where xfsj between \'2015-03-31 19:00:00\' and \'2015-03-31 23:59:59\' 参考技术A update dbo.lssjtemp set xfsj = dateadd(hh,3,xfsj) where xfsj between '2015-03-31 19:00:00' and '2015-03-31 23:59:59' 参考技术B update dbo.lssjtemp set xfsj=dateadd(hour,3,xfsj) where xfsj between '2015-03-31 19:00:00' and '2015-03-31 23:59:59'追问消息 2601,级别 14,状态 1,第 1 行
不能在具有唯一索引 'only' 的对象 'dbo.lssjtemp' 中插入重复键的行。
语句已终止。
更新引发了重复数据,比如你的数据库中存在数据2015-03-31 23:00:00和2015-04-01 02:00:00,因为你只给2015-03-31这天的数据加了3个小时,2015-03-31 23:00:00就变成了2015-04-01 02:00:00,这样就会和现有的数据冲突
参考技术C 找网管~~~SQLSERVER如何在数据库里根据某个字段,查出该表名字
SQLSERVER如何在数据库里根据某个字段,查出该表名字
SQLSERVER中 根据字段名称查找所在表格名称的方法:
一、语句的思路:
SQLSERVER的两个系统表:1、保存表格字段属性的:syscolumns 2、保存数据库对象属性的:sysobjects ,它们都包含对象ID字段,所以可以使用两个表格的ID字段,作为表格联合检索依据来进行检索。
二、相关系统表格简介:
1、syscolumns :每个表和视图中的每列在表中占一行,存储过程中的每个参数在表中也占一行。
2、sysobjects :在数据库内创建的每个对象(约束、默认值、日志、规则、存储过程等)在表中占一行。
三、根据字段名称检索所在表格名称
select syscolumns.name,sysobjects.name --syscolumns.name:字段名、sysobjects.name:表格名称from syscolumns,sysobjects
where syscolumns.name = \'gc_lczt\' and syscolumns.id = sysobjects.id;--以字段名称\'gc_lczt\'为例,使用字段ID关联两个表格
四、检索结果如图:
五、注意:因为不同表格可能有相同的字段名称,所以结果有可能不只一条。
参考技术A 你可以用工具把数据库表定义导出来,导出的是excel文件,再在这个excel文件里检索这个字段名称 参考技术B SELECT t2.nameFROM syscolumns t1,sysobjects t2
WHERE t1.id=t2.id
and t1.NAME='字段名'
以上是关于更新SQL某个表中的时间字段中的一部分数据整体增加小时数的主要内容,如果未能解决你的问题,请参考以下文章