如何使用 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 ...
随机推荐
- Aerospike系列:5:安装AMC
1:需要安装的包,如果缺少,请安装. python (2.6+) gcc python-devel 安装相应的模块 sudo pip install markupsafe sudo pip insta ...
- Mavlink地面站编写之二--Mission Planner编译
软件下载: 本文使用VS2013进行编译和改动Mission Planner,其它版本号没有尝试过. 首先下载Mission Planner源码. https://github.com/ ...
- java 日期Date类型比较大小
java 日期Date类型比较大小 CreateTime--2018年5月31日16点39分 Author:Marydon import java.text.DateFormat; import ...
- oracle批量更新之使用游标进行分批次更新的5种方式及速度比对
1.情景展示 一共有22w条数据, 需要将A表的主键更新至B表的指定字段,如何快速完成更新? 2.解决方案 声明: 解决方案不只一种,该文章只介绍快速游标法及代码实现: 两张表的ID和ID_CAR ...
- V-rep学习笔记:机器人模型创建4—定义模型
完成之前的操作后终于来到最后一步——定义模型,即将之前创建的几何体.关节等元素按层级关系组织成为一个整体. 将最后一个连杆robot_link_dyn6拖放到相应的关节(robot_joint6)下, ...
- Ubuntu12.04安装并配置Sublime Text 2
Ubuntu是个好系统,Sublime Text 是个好编辑器. 下载&安装 个人习惯喜欢到官网下载软件,http://www.sublimetext.com/2 选择合适的包下载回来的格式是 ...
- 使用jQuery模拟鼠标点击a标签事件
来源于:https://mo2g.com/view/42/ <html> <head> <meta charset="UTF-8"> <t ...
- Ant压缩与解压缩
package com.test.utils; import java.io.File; import java.io.FileOutputStream; import java.io.InputSt ...
- ROS学习(四)—— 创建ROS Package
一.caktin Package的组成 1.必须含有 package.xml文件,提供有关程序包的元信息 2.必须含有一个catkin版本的 CmakeLists.txt文件,如果是一个catkin元 ...
- golang ---image
package main import ( "image" "image/color" "image/gif" "os" ...