SQL 修改数据库中的某个字符,修改数据库中的年或月或日

replace

SQL中的替换函数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。

上面都是官话,不好懂!翻成白话:REPLACE(String,from_str,to_str) 即:将String中所有出现的from_str替换为to_str。

一、准备实验环境



1.1 创建表:
CREATE TABLE `test_tb` (                                                 
`id` int(10) unsigned NOT NULL auto_increment COMMENT '主键自增',  
`name` char(30) default NULL COMMENT '姓名',                         
`address` char(60) default NULL COMMENT '地址',                      
`country` char(200) default NULL COMMENT '国家',                     
PRIMARY KEY  (`id`)                                                    
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='测试表'  

1.2 插入数据:
insert into test_tb(name,address,country) values
('zhangsan','北京 朝阳区','中国'),
('lisi','上海 浦东区','中国'),
('wangwu','郑州金水区','中国'),
('zhaoliu','香港九龙','中国香港'),
('Q7','加州牛肉','美国'),
('wangba','新九州岛','日本')

二、查询替换



2.1 将address字段里的 “区” 替换为 “呕” 显示,如下

select *,replace(address,'区','呕') AS rep
from test_tb

2.2 将address字段里的 “九” 替换为 “十” 显示,如下

select *,replace(address,'九','十') AS rep
from test_tb
where id in (4,6)

总结:联想到前面有讲过 使用IF(expr1,expr2,expr3) 及 CASE...WHEN...THEN...END 可以实现查询结果的别名显示,
        但区别是:这两者是将查询结果值做整体的别名显示,而replace则可以对查询结果的局部字符串做替换显示(输出)。
 

三、更新替换



3.1 将address字段里的 “东” 替换为 “西” ,如下
update test_tb set address=replace(address,'东','西') where id=2

总结:对字段中局部字符串做更新替换。

 

四、插入替换

 

4.1 将id=6的name字段值改为wokou
replace into test_tb VALUES(6,'wokou','新九州岛','日本')

总结:向表中“替换插入”一条数据,如果原表中没有id=6这条数据就作为新数据插入(相当于insert into作用);如果原表中有id=6这条数据就做替换(相当于update作用)。对于没有指定的字段以默认值插入。

原文:https://www.cnblogs.com/martinzhang/p/3301224.html

 

dateadd

SQL Server DATEADD() 函数 

DATEADD() 函数在日期中添加或减去指定的时间间隔。

语法

DATEADD(datepart,number,date)

date 参数是合法的日期表达式。number 是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。

datepart 参数可以是下列的值:

datepart缩写
yy, yyyy
季度qq, q
mm, m
年中的日dy, y
dd, d
wk, ww
星期dw, w
小时hh
分钟mi, n
ss, s
毫秒ms
微妙mcs
纳秒ns

实例

假设我们有下面这个 "Orders" 表:

OrderIdProductNameOrderDate
1'Computer'2008-12-29 16:25:46.635

现在,我们希望向 "OrderDate" 添加 2 天,这样就可以找到付款日期。

我们使用如下 SELECT 语句:

SELECT OrderId,DATEADD(day,2,OrderDate) AS OrderPayDate
FROM Orders

结果:

OrderIdOrderPayDate
12008-12-31 16:25:46.635

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

橙-极纪元JJY.Cheng

客官,1分钱也是爱,给个赏钱吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值