如何使用 t-sql 更新数据库中日期字段的部分数据(年?月?日?时?分?秒?)
嗯,从网上找到了一些内容,综合利用了sql server的一些内置方法
首先是 convert 方法:https://msdn.microsoft.com/zh-cn/library/ms187928.aspx
CONVERT(data_type(length),data_to_be_converted,style)
这个方法相当于是把日期数据格式化成字符串输出了。
然后是 stuff 方法:https://msdn.microsoft.com/zh-cn/library/ms188043.aspx
STUFF ( character_expression , start , length , replaceWith_expression )
这个方法是从第一个字符串的开始位置删除指定长度的字符;然后将第二个字符串插入到第一个字符串的开始位置。
就这样局部替换就好了
测试:
select top 1 addtime, convert(nvarchar(23),addtime,121),
stuff(convert(nvarchar(23),addtime,121),1,4,'2012')
from tbl_recordinfo
嗯,好像还挺好使的
下面是原帖:http://blog.csdn.net/yangbolg/article/details/18596311
--修改d表日期字段的年份
update d
set birth=STUFF(convert(nvarchar(23),birth,120),1,4,'2012')
--修改d表日期字段的月份
update d
set birth=STUFF(convert(nvarchar(23),birth,120),6,2,'3')
--修改d表日期字段的天数
update d
set birth=STUFF(convert(nvarchar(23),birth,120),9,2,'25')
--修改d表日期字段的小时数
update d
set birth =STUFF(convert(nvarchar(23),birth,120),12,2,'9')
--修改d表日期字段的分钟数
update d
set birth =STUFF(convert(nvarchar(23),birth,120),15,2,'15')
--修改d表日期字段的秒数
update d
set birth =STUFF(convert(nvarchar(23),birth,120),18,2,'30')
--修改d表日期字段的年份、小时
update d
set birth=Convert(datetime,stuff(STUFF(Convert(char,birth,120), 1,4, '2011'),12,2, '02'))
--修改表日期字段的年份
update d
set birth=dateadd(year,datediff(year,birth,'2016-01-01'),birth)
where year(birth)<>2012
--修改表日期字段的小时
update d
set birth=dateadd(hour,3,birth)
如何使用 t-sql 更新数据库中日期字段的部分数据(年?月?日?时?分?秒?)的更多相关文章
- ASP.NET C# 日期 时间 年 月 日 时 分 秒 格式及转换(转自happymagic的专栏)
在平时编码中,经常要把日期转换成各种各样的形式输出或保持,今天专门做了个测试,发现DateTime的ToString()方法居然有这么多的表现形式,和大家一起分享. DateTime time=Dat ...
- ASP.NET 日期 时间 年 月 日 时 分 秒 格式及转换
在平时编码中,经常要把日期转换成各种各样的形式输出或保持,今天专门做了个测试,发现DateTime的ToString()方法居然有这么多的表现形式,和大家一起分享. DateTime time=Dat ...
- C#WinForm中显示实时时间:年/月/日 时/分/秒 星期X
//加载窗体时 string weekstr = ""; private void Form22_Load(object sender, EventArgs e) { this.t ...
- Js 日期字符串分别截取 年 月 日 时 分 秒
function shijiantime(times){ var timearr = times.replace(" ", ":").replace(/\:/g ...
- mysql更新表中日期字段时间
DATE_ADD和DATE_SUB函数可以用INTERVAL关键字标识的时间间隔进行加减操作,类似于PHP中的strtotime函数. 1.更新表中有效期valid_time字段值都增加一天 UPDA ...
- SQL 从数据库中随机取n条数据
用NEWID()方法. * ,NEWID() AS random from [toblename] order by random 其中的1可以换成其他任意整数,表示取的数据条数
- sql 删除表中某字段的重复数据
重复字段:BarCode SELECT * FROM dbo.AssetBarCode WHERE BarCode IN (SELECT BarCode FROM dbo.AssetBarCode G ...
- SQL批量更新数据库中所有用户数据表中字段类型为tinyint为int
--SQL批量更新数据库中所有用户数据表中字段类型为tinyint为int --关键说明:--1.从系统表syscolumns中的查询所有xtype='48'的记录得到类型为[tinyint]的字段- ...
- LINQ to SQL更新数据库操作(转载)
使用LINQ to SQL建模Northwind数据库 在这之前一起学过LINQ to SQL设计器的使用,下面就使用如下的数据模型: 当使用LINQ to SQL设计器设计以上定义的五个类(Prod ...
随机推荐
- 【leetcode】solution in java——Easy4
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6415011.html 16:Invert Binary Tree 此题:以根为对称轴,反转二叉树. 思路:看到 ...
- Linux主流架构运维工作简单剖析
转载:http://wgkgood.blog.51cto.com/1192594/1586259 随着IT运维的不断发展,尤其的Linux的飞速发展,越来越多的企业开始使用Linux操作系统平台,例如 ...
- log4j的详细配置(最省心完美配置)
先说下我的需求 1,可以记录日记在我们的java开发项目周期中: 2,很简单即可输出日志: 3,每天按照时间将不同的日志输出到不同的文件中,每天输出日志到一个带有当前时间戳的文件中: 4,可以修改当前 ...
- V-rep学习笔记:Reflexxes Motion Library 1
V-REP中集成了在线运动轨迹生成库Reflexxes Motion Library Type IV,目前Reflexxes公司已经被谷歌收购.(The Reflexxes Motion Librar ...
- 主成分分析PCA
PCA(Principal Component Analysis)不仅仅是对高维数据进行降维,更重要的是经过降维去除了噪声,发现了数据中的模式. PCA把原先的n个特征用数目更少的m个特征取代,新特征 ...
- Ubuntu18.04下编译安装Guitarix 0.37.3
准备工作 源文件下载 https://sourceforge.net/projects/guitarix/files/guitarix/ 安装依赖. 参考 https://sourceforge.ne ...
- 【bootstrapV3】移动端和PC端的 滚动监听
1.本代码适用于 bootstrap V3 的 页面滚动监听 2.效果: 3.代码: <!DOCTYPE html> <html lang="zh-CN"> ...
- ios中推送
http://www.cnblogs.com/cdts_change/p/3240893.html 推荐:http://blog.csdn.net/zhuqilin0/article/details/ ...
- lua一些特殊函数说明
setclLvalue(L, L->top, cl); 这是个宏展开是这样: ((L->top)->value_).gc = obj2gco(cl); //top valud gc ...
- netstat统计的tcp连接数与⁄proc⁄pid⁄fd下socket类型fd数量不一致的分析
最近,线上一个应用,发现socket数缓慢增长,并且不回收,超过警告线之后,被运维监控自动重启了. 首先到zabbix上观察JVM历史记录,发现JVM-Perm space最近两周没有数据,猜测是程序 ...