玖叶教程网

前端编程开发入门

史上最全MySQL日期命令,你想要的都在这哦

开心一刻

小知小慧

相信大家偶尔也会对MySQL中的日期而感觉到头疼的把,今天小编给大家带来非常完整的SQL中常用的日期命令以及用法,通俗易懂哦~

话不都说,先上干货

MySQL中常用的Date函数表如下:

函数描述返回日期格式SQL格式(例子)
NOW()返回当前的日期和时间YYYY-MM-DD HH:mm:ssselect now();
CURDATE()返回当前的日期YYYY-MM-DDselect curdate();
CURTIME()返回当前的时间HH:mm:ssselect curtime();
DATE()提取日期或日期/时间表达式的日期部分YYYY-MM-DDselect 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一百万分之一秒,微秒- + 毫秒数 - 毫秒数
SECONDss + 秒数 - 秒数
MINUTEmm + 分数 - 分数
HOURHH + 时数 - 时数
DAYDD + 天数 - 天数
WEEK- + 周数 - 周数
MONTHMM + 月数 - 月数
QUARTER- + 刻数 - 刻数
YEARYY + 年数 - 年数
SECOND_MICROSECOND秒 × 1,000,000ss000000 + 毫秒数 - 毫秒数
MINUTE_MICROSECOND分 × 1,000,000mm000000 + 毫秒数 - 毫秒数
MINUTE_SECOND分秒mmss + 秒数 - 秒数
HOUR_MICROSECOND时 × 1,000,000HH000000 + 毫秒数 - 毫秒数
HOUR_SECOND时分秒HHmmss + 秒数 - 秒数
HOUR_MINUTE时分HHmm + 分数 - 分数
DAY_MICROSECOND天时分秒 × 1,000,000DDHHmmss000000 + 毫秒数 - 毫秒数
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)
%pAM 或 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知识~~~~

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言