zoukankan      html  css  js  c++  java
  • 如何使用 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)

  • 相关阅读:
    第十一周总结
    第十周总结
    实验报告(七)及第九周总结
    第六次实验及第八周总结
    第五实验报告及第七周总结
    第六周&实验四
    期末课程总结
    第十四周课程总结&实验报告(简单记事本的实现)
    第十三周课程总结
    第十二周总结
  • 原文地址:https://www.cnblogs.com/xwgli/p/4645153.html
Copyright © 2011-2022 走看看