MySQL和SQlServer的区别

MySQL和SQlServer的区别

说明:在一些常用的SQL语句中,MySQL和SQLServer存在有一些区别,后续我也会将我遇到的不同点持续更新在这篇博客中。

1. 获取当前时间

SQLServer:

sql 复制代码
-- SQLServer
-- 1.获取当前时间
SELECT GETDATE();
-- 2.查询时间间隔,SQLServer中可以自由填写时间单位
select DATEDIFF(day,GETDATE(), '2023-10-01');

MySQL

sql 复制代码
-- MySQL
-- 1.获取当前时间
SELECT NOW();
-- 2.获取当前时间和一个时间相差几天
select DATEDIFF(NOW(), '2023-10-01');
-- 3.计算当前时间减去一天
SELECT DATE_SUB(NOW(), INTERVAL 1 DAY);

关于DATE_SUB的具体说明:

sql 复制代码
DATE_SUB(date, INTERVAL expr unit)
  • date: 这是你要从中减去时间间隔的日期或日期时间值。它可以是一个日期字面量、一个日期时间字面量,或者一个返回日期/日期时间值的表达式或列。
  • INTERVAL: 这是固定的关键字,用于指示紧接着的表达式和单位表示一个时间间隔。
  • expr: 这是一个数值表达式,表示要减去的时间间隔的数量。
  • unit: 这是时间间隔的单位,它可以是以下值之一:MICROSECOND、SECOND、MINUTE、HOUR、DAY、WEEK、MONTH、QUARTER 或 YEAR。

2. 限制查询结果集

SQLServer:

sql 复制代码
SELECT * FROM table_name
ORDER BY id
OFFSET 0 ROWS FETCH NEXT 2 ROWS ONLY

说明:

  • OFFSET n ROWS:从第n行开始
  • FETCH NEXT m ROWS ONLY:获取m行数据
    MySQL
sql 复制代码
SELECT * FROM table_name
ORDER BY id
LIMIT 2 OFFSET 2;

LIMIT的说明:

  • LIMIT m:获取最多 m 行数据。
  • OFFSET n:跳过前 n 行数据。

2. 联表更新

SQLServer:

sql 复制代码
UPDATE table1
SET table1.column1 = table2.column1
FROM table1
LEFT JOIN table2 ON table1.id = table2.id

MySQL

sql 复制代码
UPDATE table1
LEFT JOIN table2 ON table1.id = table2.id
SET table1.column1 = table2.column1
相关推荐
凡人叶枫15 小时前
Effective C++ 条款39:明智而审慎地使用 private 继承
java·数据库·c++·嵌入式开发
基德爆肝c语言15 小时前
MySQL表的操作
前端·数据库·mysql
GreatSQL16 小时前
gt-checksum v4.0.0 新功能解读系列文章(1):断点续传——大任务中断不再从头跑
mysql
TDengine (老段)16 小时前
TDengine 连接算子 — Inner/Outer/ASOF/Window Join 的实现与使用
大数据·数据库·物联网·哈希算法·时序数据库·tdengine·涛思数据
Keano Reurink16 小时前
搜索API与GSC数据对比:发现数据盲区
数据库·python·数据挖掘
shushangyun_16 小时前
汽车服务行业B2B平台+AI解决方案哪家专业:2026年最新测评
java·运维·网络·数据库·人工智能·汽车
大黄说说16 小时前
深入理解 Go 协程 Goroutine:并发编程的核心精髓
java·数据库·python
sulikey16 小时前
数据库系统概论4 - 更新与视图 期末速成课笔记
数据库·笔记·考试·期末速成·数据库系统概论
锋行天下16 小时前
数据库安全并发控制详解:乐观锁 vs 悲观锁 vs 原子操作
前端·数据库·后端
2601_9618752417 小时前
花生十三公考课程|网课|视频
数据库·windows·git·svn·eclipse·github