SQL SERVER 批量修改时间由yyyy/MM/dd转为yyyy-MM-dd

今天需要把数据库历史数据中的日期由原来的 yyyy/MM/dd 改为 yyyy-MM-dd,用Java直接我就改好了,但是要写SQL语句居然毫无头绪。百度一番,连SQL怎么调用函数都忘掉了,太辣鸡了吧。

通过百度,大家一致都说用COVERT函数,实现的时候发现,COVERT只可以操作日期类型的数据,而数据库原来存储这个日期的类型是字符串,最后用了REPLACE函数,具体实现如下:

UPDATE table
SET column_date = (select REPLACE(column_date, '/', '-')) 
WHERE *** = ***

COVERT函数也能用,但是如果需要只保存年月日的话,需要使用date类型或者varchar存储结果,否则时分秒会自动以0补充

UPDATE t_test
SET date_new = (select CONVERT(varchar(10), date_date, 120))

varchar(10)就确定只保存字符串前十位,如果需要时分秒可以设置更长的长度。具体如下图: 

 

CONVERT() 函数

定义和用法

CONVERT() 函数是把日期转换为新数据类型的通用函数。

CONVERT() 函数可以用不同的格式显示日期/时间数据

语法

CONVERT ( data_type(length) , data_to_be_converted , style )

data_type(length) 规定目标数据类型(带有可选的长度)。data_to_be_converted 含有需要转换的值。style 规定日期/时间的输出格式。

参考链接:https://www.w3school.com.cn/sql/func_convert.asp

 

REPLACE() 函数

定义和用法

REPLACE()返回用另一个字符串值替换原字符串中出现的所有指定字符串值之后的字符串。

语法

REPLACE ( string_expression , string_pattern , string_replacement )

①string_expression是原字符串。 string_expression 可以是字符或二进制数据类型 。

②string_pattern是要查找的子字符串(指定字符串值)。 string_pattern 可以是字符或二进制数据类型 。 string_pattern 不能为空字符串 (''),不能超过页容纳的最大字节数 。

③string_replacement是替换字符串(另一个字符串值)。 string_replacement 可以是字符或二进制数据类型 。

返回值:

如果其中的一个输入参数数据类型为 nvarchar,则返回 nvarchar;否则 REPLACE 返回 varchar 。

如果任何一个参数为 NULL,则返回 NULL。

如果 string_expression 的类型不是 varchar(max) 或 nvarchar(max),则 REPLACE 将返回值截断为 8000 个字节 。 若要返回大于 8,000 字节的值,则必须将 string_expression 显式转换为大值数据类型 。

参考链接:https://www.cnblogs.com/feiyu721/p/11248839.html

 

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值