相信大家偶尔也会对MySQL中的日期而感觉到头疼的把,今天小编给大家带来非常完整的SQL中常用的日期命令以及用法,通俗易懂哦~ 话不都说,先上干货 MySQL中常用的Date函数表如下: 1、now()/curdate()/curtime(): 2、date(): 3、extract():(中文意思:提取),date_add(), date_sub(),如下表: 提示:输出格式中,省略前面的所有0,最小输出为0; 部分截图演示: 4、datediff()(2个日期相差数): 5、date_format():如下表,输出的格式如下: 6、timestamp(时间戳): 时间戳在创建表时的用法说明如下: 时间戳的函数格式如下: 7、timezone(时区): 格式:convert_tz(dt,from_tz,to_tz) 8、一些常用的函数整理: 返回从0000年(公元1年)至当前日期的总天数 不积跬步,无以至千里;不急小流,无以成江海。每天学一点,大神离你就不远。 今天的分享就到这了,希望大家喜欢,能和大家一起学习MySQL知识~~~~开心一刻
小知小慧
函数 描述 返回日期格式 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 表名称 日期参数 描述 输出格式(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 + 月数 - 月数 格式 描述 %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 位 创建新记录和修改现有记录的时候都对这个数据列刷新 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) - 常用函数 描述 to_days 函数查询今天的数据:select * from 表名 where to_days(时间字段名) = to_days(now()); 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参数,转换成秒。