网站首页 > 基础教程 正文
开心一刻
小知小慧
相信大家偶尔也会对MySQL中的日期而感觉到头疼的把,今天小编给大家带来非常完整的SQL中常用的日期命令以及用法,通俗易懂哦~
话不都说,先上干货
MySQL中常用的Date函数表如下:
函数 | 描述 | 返回日期格式 | SQL格式(例子) |
NOW() | 返回当前的日期和时间 | YYYY-MM-DD HH:mm:ss | select now(); |
CURDATE() | 返回当前的日期 | YYYY-MM-DD | select curdate(); |
CURTIME() | 返回当前的时间 | HH:mm:ss | select curtime(); |
DATE() | 提取日期或日期/时间表达式的日期部分 | YYYY-MM-DD | select date(合法日期) from 表名称; |
EXTRACT() | 返回日期/时间按的单独部分 | - | select extract(日期参数 from 合法日期) from 表名称; |
DATE_ADD() | 给日期添加指定的时间间隔(不会影响存储数据,输出数据会有变化) | - | select date_add(合法日期, interval 增加的时间间隔 日期参数) from 表名称; |
DATE_SUB() | 从日期减去指定的时间间隔 | - | select date_sub(合法日期, interval 增加的时间间隔 日期参数) from 表名称; |
DATEDIFF() | 返回两个日期之间的天数(前后参数无大小限制) | - | select datediff(日期1, 日期2); |
DATE_FORMAT() | 用不同的格式显示日期/时间 | - | select date_format(合法日期,输出的格式) from 表名称 |
1、now()/curdate()/curtime():
2、date():
3、extract():(中文意思:提取),date_add(), date_sub(),如下表:
提示:输出格式中,省略前面的所有0,最小输出为0;
日期参数 | 描述 | 输出格式(EXTRACT()) | 输出算式(DATE_ADD()) | 输出算式(DATE_SUB()) |
MICROSECOND | 一百万分之一秒,微秒 | - | + 毫秒数 | - 毫秒数 |
SECOND | 秒 | ss | + 秒数 | - 秒数 |
MINUTE | 分 | mm | + 分数 | - 分数 |
HOUR | 时 | HH | + 时数 | - 时数 |
DAY | 天 | DD | + 天数 | - 天数 |
WEEK | 周 | - | + 周数 | - 周数 |
MONTH | 月 | MM | + 月数 | - 月数 |
QUARTER | 刻 | - | + 刻数 | - 刻数 |
YEAR | 年 | YY | + 年数 | - 年数 |
SECOND_MICROSECOND | 秒 × 1,000,000 | ss000000 | + 毫秒数 | - 毫秒数 |
MINUTE_MICROSECOND | 分 × 1,000,000 | mm000000 | + 毫秒数 | - 毫秒数 |
MINUTE_SECOND | 分秒 | mmss | + 秒数 | - 秒数 |
HOUR_MICROSECOND | 时 × 1,000,000 | HH000000 | + 毫秒数 | - 毫秒数 |
HOUR_SECOND | 时分秒 | HHmmss | + 秒数 | - 秒数 |
HOUR_MINUTE | 时分 | HHmm | + 分数 | - 分数 |
DAY_MICROSECOND | 天时分秒 × 1,000,000 | DDHHmmss000000 | + 毫秒数 | - 毫秒数 |
DAY_SECOND | 天时分秒 | DDHHmmss | + 秒数 | - 秒数 |
DAY_MINUTE | 天时分 | DDHHmm | + 分数 | - 分数 |
DAY_HOUR | 天时 | DDHH | + 小时数 | - 小时数 |
YEAR_MONTH | 年月 | YYYYMM | + 月数 | - 月数 |
部分截图演示:
4、datediff()(2个日期相差数):
5、date_format():如下表,输出的格式如下:
格式 | 描述 |
%a | 缩写星期名 |
%b | 缩写月名 |
%c | 月,数值 |
%D | 带有英文前缀的月中的天 |
%d | 月的天,数值(00-31) |
%e | 月的天,数值(0-31) |
%f | 微秒 |
%H | 小时 (00-23) |
%h | 小时 (01-12) |
%I | 小时 (01-12) |
%i | 分钟,数值(00-59) |
%j | 年的天 (001-366) |
%k | 小时 (0-23) |
%l | 小时 (1-12) |
%M | 月名 |
%m | 月,数值(00-12) |
%p | AM 或 PM |
%r | 时间,12-小时(hh:mm:ss AM 或 PM) |
%S | 秒(00-59) |
%s | 秒(00-59) |
%T | 时间, 24-小时 (hh:mm:ss) |
%U | 周 (00-53) 星期日是一周的第一天 |
%u | 周 (00-53) 星期一是一周的第一天 |
%V | 周 (01-53) 星期日是一周的第一天,与 %X 使用 |
%v | 周 (01-53) 星期一是一周的第一天,与 %x 使用 |
%W | 星期名 |
%w | 周的天 (0=星期日, 6=星期六) |
%X | 年,其中的星期日是周的第一天,4 位,与 %V 使用 |
%x | 年,其中的星期一是周的第一天,4 位,与 %v 使用 |
%Y | 年,4 位 |
%y | 年,2 位 |
6、timestamp(时间戳):
时间戳在创建表时的用法说明如下:
创建新记录和修改现有记录的时候都对这个数据列刷新 | TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP |
在创建新记录的时候把这个字段设置为当前时间,但以后修改时,不再刷新它 | TIMESTAMP DEFAULT CURRENT_TIMESTAMP |
在创建新记录的时候把这个字段设置为0,以后修改时刷新它 | TIMESTAMP ON UPDATE CURRENT_TIMESTAMP |
在创建新记录的时候把这个字段设置为给定值,以后修改时刷新它 | TIMESTAMP DEFAULT ‘yyyy-mm-dd hh:mm:ss' ON UPDATE CURRENT_TIMESTAMP |
时间戳的函数格式如下:
格式 | 描述 |
timestamp(date) | date to timestamp |
timestamp(dt,time) | dt + time |
timestampadd(unit,interval,datetime_expr) | - |
timestampdiff(unit,datetime_expr1,datetime_expr2) | - |
7、timezone(时区):
格式:convert_tz(dt,from_tz,to_tz)
8、一些常用的函数整理:
常用函数 | 描述 |
to_days | 函数查询今天的数据:select * from 表名 where to_days(时间字段名) = to_days(now()); 返回从0000年(公元1年)至当前日期的总天数 |
DAYOFWEEK(date) | 返回日期date的星期索引(1=星期天,2=星期一, ……7=星期六)。这些索引值对应于ODBC标准。 |
WEEKDAY(date) | 返回date的星期索引(0=星期一,1=星期二, ……6= 星期天)。 |
DAYOFMONTH(date) | 返回date的月份中日期,在1到31范围内。 |
DAYOFYEAR(date) | 返回date在一年中的日数, 在1到366范围内 |
MONTH(date) | 返回date的月份,范围1到12。 |
DAYNAME(date) | 返回date的星期名字。 |
MONTHNAME(date) | 返回date的月份名字。 |
QUARTER(date) | 返回date一年中的季度,范围1到4。 |
WEEK(date) | 对于星期天是一周的第一天的地方,有一个单个参数,返回date的周数,范围在0到52。 |
WEEK(date,first) | 2个参数形式WEEK()允许你指定星期是否开始于星期天或星期一。如果第二个参数是0,星期从星期天开始,如果第二个参数是1, 从星期一开始。 |
YEAR(date) | 返回date的年份,范围在1000到9999。 |
HOUR(time) | 返回time的小时,范围是0到23。 |
MINUTE(time) | 返回time的分钟,范围是0到59。 |
SECOND(time) | 回来time的秒数,范围是0到59。 |
PERIOD_ADD(P,N) | 增加N个月到阶段P(以格式YYMM或YYYYMM)。以格式YYYYMM返回值。注意阶段参数P不是日期值。 |
PERIOD_DIFF(P1,P2) | 返回在时期P1和P2之间月数,P1和P2应该以格式YYMM或YYYYMM。注意,时期参数P1和P2不是日期值。 |
FROM_DAYS(N) | 给出一个天数N,返回一个DATE值。 |
TIME_TO_SEC(time) | 返回time参数,转换成秒。 |
不积跬步,无以至千里;不急小流,无以成江海。每天学一点,大神离你就不远。
今天的分享就到这了,希望大家喜欢,能和大家一起学习MySQL知识~~~~
猜你喜欢
- 2024-11-07 VBA编程,利用DatePart函数获取特定日期
- 2024-11-07 MySQL引起的CPU消耗过大,你会如何优化?
- 2024-11-07 高级数据分析师必备SQL常用处理函数,我觉得收藏是必须的
- 2024-11-07 每日SQL自学知识点(第三天)—lead的窗口函数、datediff函数
- 2024-11-07 mysql与时间有关的查询 mysql与时间有关的查询方法
- 2024-11-07 面试官:如何正确的清理Mysql数据库binlog日志?
- 2024-11-07 数据库丨从MySQL数值隐式转换成了double型的测试点,值得学习
- 2024-11-07 限定Excel数据使用时间,到期自动销毁,这2种方法都能轻松搞定
- 2024-11-07 关于Mysql数据库清理binlog日志命令总结
- 2024-11-07 「MySQL入门」快来看看MySQL函数就是这么简单
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)