超爱学习网
sql入门
一级目录
基础使用
面试题
二级目录
目录
数据库、表的操作语句
创建库 DATABASE
删除库 DATABASE
备份库 DATABASE
创建表 TABLE
删除表 TABLE
清空表 TABLE
修改表 TABLE
字段非空 NOT NULL
字段唯一 UNIQUE
主键 PRIMARY KEY
外键 FOREIGN KEY
检查 CHECK
默认值 DEFAULT
索引 INDEX
自增ID auto-increment
事务
触发器
视图
常用的查询SQL
查询 SELECT
限定 WHERE
分页 LIMIT
分页 ROWNUM
总数 COUNT
插入 INSERT
更新 UPDATE
删除 DELETE
并且 AND
或者 OR
非 NOT
大于 >
小于 <
等于 =
不等于 !=
在内 IN
部分 LIKE
介于 BETWEEN
排序 ORDER BY
分组 GROUP BY
存在 HAVING
存在 EXISTS
空与非空 IS NULL、IS NOT NULL
去重 DISTINCT
组合 UNION
链接 JOIN
左链 LEFT JOIN
右链 RIGHT JOIN
情况 CASE
解析 EXPLAIN
字符串函数
码值 ASCII
长度 CHAR_LENGTH
CHARACTER_LENGTH
连接 CONCAT
连接 CONCAT_WS
位置 FIELD
查找 FIND_IN_SET
格式 FORMAT
插入 INSERT
查找 INSTR
小写 LCASE
截取 LEFT
长度 LENGTH
查找 LOCATE
转小写 LOWER
左填充 LPAD
左空格 LTRIM
截取 MID
查找 POSITION
重复 REPEAT
替换 REPLACE
反转 REVERSE
截取 RIGHT
右填充 RPAD
右空格 RTRIM
空格 SPACE
比较 STRCMP
截取 SUBSTR
截取 SUBSTRING
SUBSTRING_INDEX
去除空格 TRIM
转大写 UCASE
转大写 UPPER
数值函数
绝对值 ABS
反余弦 ACOS
反正弦 ASIN
反正切 ATAN
反正切 ATAN2
平均值 AVG
向上取整 CEIL
取整 CEILING
余弦 COS
余切 COT
统计 COUNT
角度 DEGREES
除法 DIV
指数 EXP
向下取整 FLOOR
最大值 GREATEST
最小值 LEAST
自然对数 LN
自然对数 LOG
自然对数 LOG10
自然对数 LOG2
最大值 MAX
最小值 MIN
余数 MOD
圆周率 PI
指数幂 POW
指数幂 POWER
弧度 PADIANS
随机数 RAND
四舍五入 ROUND
符号 SIGN
正弦 SIN
排列 SORT
总和 SUM
正切 TAN
截断 TRUNCATE
日期函数
添加 ADDDATE
添加 ADDTIME
当前日期 CURDATE
当前日期 CURRENT_DATE
当前时间 CURRENT_TIME
当前时间戳 CURRENT_TIMESTAMP
当前时间 CURTIME
当前时间 DATE
时间差 DATEDIFF
添加 DATE_ADD
格式化 DATE_FORMAT
减去 DATE_SUB
获取天 DAY
获取星期 DAYNAME
月中天 DAYOFMONTH
周中天 DAYOFWEEK
年中天 DAYOFYEAR
提取 EXTRACT
转换 FROM_DAYS
提取小时 HOUR
月最后天 LAST_DAY
当前时间 LOCALTIME
当前时间戳 LOCALTIMESTAMP
创建日期 MAKEDATE
创建时间 MAKETIME
获取微秒 MICROSECOND
获取分钟 MINUTE
获取月份 MONTH
获取月份 MONTHNAME
获取当前时间 NOW
添加 PERIOD_ADD
月间隔 PERIOD_DIFF
季度 QUARTER
砖庙 SEC_TO_TIME
字符转时间 STR_TO_DATE
减去 SUBDATE
减去 SUBTIME
系统时间 SYSDATE
提取时间 TIME
格式化 TIME_FORMAT
转秒 TIME_TO_SEC
时间差 TIMEDIFF
时间戳 TIMESTAMP
天数 TO_DAYS
获取周 WEEK
获取星期 WEEKDAY
获取周数 WEEKOFYEAR
获取年 YEAR
获取年周 YEARWEEK
其他函数
二进制 BIN
二进制 BINARY
转换 CAST
默认值 COALESCE
链接ID CONNECTION_ID
数值转换 CONV
转换 CONVERT
当前用户 CURRENT_USER
数据库 DATABASE
替代 IFNULL
替代 ISNULL
上一ID LAST_INSERT_ID
比较 NULLIF
用户 SESSION_USER
用户 SYSTEM_USER
用户 USER
版本 VERSION

SQL的时间函数MICROSECOND讲解

MICROSECOND函数返回一个时间或日期时间值的微秒部分。它对于需要精确到微秒的时间操作非常有用。
MICROSECOND函数的基本语法如下:
SELECT MICROSECOND(时间值);
其中,时间值是要获取微秒部分的时间或日期时间值。

案例表的定义和数据


CREATE TABLE Orders (
  order_id INT PRIMARY KEY,
  order_date DATETIME
);

INSERT INTO Orders VALUES
  (1, '2023-01-01 12:30:45.123456'),
  (2, '2023-02-15 08:45:30.987654'),
  (3, '2023-03-20 18:20:15.456789');
        
上述代码定义了一个表Orders,包括order_id和order_date两个字段,并插入了订单信息。

使用案例


-- 1. 获取订单号为 2 的订单日期的微秒部分
SELECT MICROSECOND(order_date)
FROM Orders
WHERE order_id = 2;
-- 注释:返回订单号为 2 的订单日期的微秒部分
        

-- 2. 获取订单号为 3 的订单日期的微秒部分
SELECT MICROSECOND(order_date)
FROM Orders
WHERE order_id = 3;
-- 注释:返回订单号为 3 的订单日期的微秒部分
        

案例结果


-- 1. 获取订单号为 2 的订单日期的微秒部分
SELECT MICROSECOND(order_date)
FROM Orders
WHERE order_id = 2;
-- 结果:返回 987654
        

-- 2. 获取订单号为 3 的订单日期的微秒部分
SELECT MICROSECOND(order_date)
FROM Orders
WHERE order_id = 3;
-- 结果:返回 456789
        

特点和注意点

特点:MICROSECOND函数用于获取时间或日期时间值的微秒部分。
注意点:该函数只对时间或日期时间值有效,如果参数不是有效的时间值,将返回NULL。

错误用法


-- 错误示例:未指定时间值
SELECT MICROSECOND();
-- 错误原因:MICROSECOND函数需要指定一个时间或日期时间值作为参数
        

-- 错误示例:使用不支持的数据类型
SELECT MICROSECOND('2023-01-01');
-- 错误原因:MICROSECOND函数只能用于时间或日期时间值