截取字段
- left(str, length)
从左往右截length位
- right(str, length)
从右往左截取length位
- substring(str, pos); substring(str, pos, len)
从第pos位置截取len位
- 字符位置
4.1. mysql ---> substring_index(str,delim,count)
截取第count个‘delim’之前的所有字符(count负数时,表示之后的所有字符)
4.2. sqlserver ---> charindex(delim,str)
返回str中‘delim’的位置
时间处理
1. 时间格式转换
1.1. sqlserver
Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46
Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967
Select CONVERT(varchar(100), GETDATE(), 20): 2020-11-27 10:57:47
Select CONVERT(varchar(100), GETDATE(), 21): 2020-11-27 10:57:47.157
Select CONVERT(varchar(100), GETDATE(), 23): 2020-11-27
Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47
Select CONVERT(varchar(100), GETDATE(), 25): 2020-11-27 10:57:47.250
Select CONVERT(varchar(100), GETDATE(), 102): 2020.11.27
Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49
Select CONVERT(varchar(100), GETDATE(), 111): 2020/11/27
Select CONVERT(varchar(100), GETDATE(), 112): 20201127
Select CONVERT(varchar(100), GETDATE(), 113): 27 11 2020 10:57:49:513
Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547
Select CONVERT(varchar(100), GETDATE(), 120): 2020-11-27 10:57:49
Select CONVERT(varchar(100), GETDATE(), 121): 2020-11-27 10:57:49.700
1.2. mysql
DATE_FORMAT(new(),'%Y-%m-%d %H:%i:%s'): 2020-11-27 10:57:49
存在则修改不存在则插入
1. sqlserver
IF EXISTS (SELECT 1 FROM 表名 WHERE 条件)
UPDATE 表名 SET 字段=值 WHERE 条件
ELSE
INSERT INTO 表名(字段) VALUES(值)
2. mysql
INSERT INTO 表名 (字段) VALUES(值) ON DUPLICATE KEY UPDATE 字段=值
ON DUPLICATE KEY UPDATE语法的规则:如果你插入的记录导致一个UNIQUE索引或者primary key(主键)出现重复,那么就会认为该条记录存在,则执行update语句而不是insert语句,反之,则执行insert语句而不是更新语句。
case when
select
(case sex when '1' then '男' when '2' then '女' else '保密' end),
(case when len(name)>3 then left(name)+'...' else name end)
from user
一些mysql和sqlserver的常见不同用法
- 标识符限定符
- 字符串相加
SqlServer 直接用 +
MySql concat()
- isnull()
SqlServer isnull()
MySql ifnull()
注意:MySql也有isnull()函数,但意义不一样
- getdate()
SqlServer getdate()
MySql now()
- newid()
SqlServer newid()
MySql uuid()
- @@ROWCOUNT
SqlServer @@ROWCOUNT
MySql row_count()
注意:MySql的这个函数仅对于update, insert, delete有效
- SCOPE_IDENTITY()
SqlServer SCOPE_IDENTITY()
MySql last_insert_id()