MySql中的日期处理(适用于 MySQL 5.X 及以上版本)

一、日期相关函数
date_format(date, format)MySQL日期格式化unix_timestamp()str_to_date(str, format) from_unixtime(unix_timestamp, format)MySQL时间戳格式化timediff('time','time')获取时间间隔,支持到秒级别now()\sysdate() 获得当前日期时间
#now() 在执行开始时值就得到了, sysdate() 在函数执行时动态得到值。获得当前 UTC 日期时间函数:utc_date() 2019-01-11 utc_time() 11:11:11utc_timestamp() 2019-01-11 11:11:11#因为我国位于东八时区,所以本地时间 = UTC 时间 + 8 小时。UTC 时间在业务涉及多个国家和地区的时候,非常有用。Extract(选取)函数选取日期时间的各个部分:日期、时间、年、季度、月、日、小时、分钟、秒、微秒 set @dt = '2008-09-10 07:15:30.123456'select date(@dt); -- 2008-09-10select time(@dt); -- 07:15:30.123456select year(@dt); -- 2008select quarter(@dt); -- 3select month(@dt); -- 9select week(@dt); -- 36select day(@dt); -- 10select hour(@dt); -- 7select minute(@dt); -- 15select second(@dt); -- 30select microsecond(@dt); -- 123456select extract(year from @dt); -- 2008select extract(quarter from @dt); -- 3select extract(month from @dt); -- 9select extract(week from @dt); -- 36select extract(day from @dt); -- 10select extract(hour from @dt); -- 7select extract(minute from @dt); -- 15select extract(second from @dt); -- 30select extract(microsecond from @dt); -- 123456select extract(year_month from @dt); -- 200809select extract(day_hour from @dt); -- 1007select extract(day_minute from @dt); -- 100715select extract(day_second from @dt); -- 10071530select extract(day_microsecond from @dt); -- 10071530123456select extract(hour_minute from @dt); -- 715select extract(hour_second from @dt); -- 71530select extract(hour_microsecond from @dt); -- 71530123456select extract(minute_second from @dt); -- 1530select extract(minute_microsecond from @dt); -- 1530123456select extract(second_microsecond from @dt); -- 30123456@dt = '2008-08-08'分别返回日期参数,在一周、一月、一年中的位置dayofweek() select dayofweek(@dt); -- 6dayofmonth() select dayofmonth(@dt); -- 8dayofyear() select dayofyear(@dt); -- 221#日期 '2008-08-08' 是一周中的第 6 天(1 = Sunday, 2 = Monday, ..., 7 = Saturday);一月中的第 8 天;一年中的第 221 天。计算“某天”是位于一年中的第几周。 weekofyear(@dt) 等价于 week(@dt,3) set @dt = '2008-08-08'week() select week(@dt); -- 31weekofyear() select weekofyear(@dt); -- 32dayofweek() select dayofweek(@dt); -- 6weekday() select weekday(@dt); -- 4yearweek() select yearweek(@dt); -- 200831last_day()得到当前月份中有多少天day(last_day(now())) as days -- 31 date_add()为日期增加一个时间间隔 set @dt = now()select date_add(@dt, interval 1 day); -- add 1 dayselect date_add(@dt, interval 1 hour); -- add 1 hourselect date_add(@dt, interval 1 minute); -- ...select date_add(@dt, interval 1 second);select date_add(@dt, interval 1 microsecond);select date_add(@dt, interval 1 week);select date_add(@dt, interval 1 month);select date_add(@dt, interval 1 quarter);select date_add(@dt, interval 1 year);
二、时间、字符串、时间戳之间的转换时间转字符串select date_format(now(),'%Y-%m-%d')结果:2019-01-11时间转时间戳select unix_timestamp(now())结果:1547136000字符串转时间select str_to_date('2019-01-11', '%Y-%m-%d %H')结果:2019-01-11 00:00:00字符串转时间戳select unix_timestamp('2019-01-11')结果:1547136000时间戳转时间select from_unixtime(1547136000)结果:2019-01-11 00:00:00时间戳转字符串select from_unixtime(1547136000,'%Y-%d')结果:2019-11

三、MySQL日期格式化(format)取值范围。

含义
%S、%s 两位数字形式的秒( 00,01, …, 59)
%I、%i 两位数字形式的分( 00,01, …, 59)
小时 %H 24小时制,两位数形式小时(00,01, …,23)
%h 12小时制,两位数形式小时(00,01, …,12)
%k 24小时制,数形式小时(0,1, …,23)
%l 12小时制,数形式小时(0,1, …,12)
%T 24小时制,时间形式(HH:mm:ss)
%r 12小时制,时间形式(hh:mm:ss AM 或 PM)
%p AM上午或PM下午
%W 一周中每一天的名称(Sunday,Monday, …,Saturday)
%a 一周中每一天名称的缩写(Sun,Mon, …,Sat)
%w 以数字形式标识周(0=Sunday,1=Monday, …,6=Saturday)
%U 数字表示周数,星期天为周中第一天
%u 数字表示周数,星期一为周中第一天
%d 两位数字表示月中天数(01,02, …,31)
%e 数字表示月中天数(1,2, …,31)
%D 英文后缀表示月中天数(1st,2nd,3rd …)
%j 以三位数字表示年中天数(001,002, …,366)
%M 英文月名(January,February, …,December)
%b 英文缩写月名(Jan,Feb, …,Dec)
%m 两位数字表示月份(01,02, …,12)
%c 数字表示月份(1,2, …,12)
%Y 四位数字表示的年份(2015,2016…)
%y 两位数字表示的年份(15,16…)
文字输出 %文字 直接输出文字内容
#查询今天过生日的员工
select DATE_FORMAT(sbir,'%m-%d')
from student
where DATE_FORMAT(sbir,'%m-%d') = DATE_FORMAT(SYSDATE(),'%m-%d')

四、日期类型

日期类型 存储空间 日期格式 日期范围
datetime 8 bytes YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
timestamp 4 bytes YYYY-MM-DD HH:MM:SS 1970-01-01 00:00:01 ~ 2038
date 3 bytes YYYY-MM-DD 1000-01-01 ~ 9999-12-31
year 1 bytes YYYY 1901 ~ 2155
time 3 bytes HH:MM:SS -838:59:59 ~ 838:59:59
注意:
1、timestamp特点默认情况下,在 insert, update 数据时,timestamp 列会自动以当前时间(CURRENT_TIMESTAMP)填充/更新。所占存储空间比较小,只是 datetime 的一半。
2、time为了满足两个日期时间相减。select timediff('2000:01:31 23:59:59', '2000:01:01 00:00:00')-----结果:743:59:59

MySql中的日期处理(适用于 MySQL 5.X 及以上版本)相关推荐

  1. MySQL中的日期时间类型与格式化方式

    [1]MySQL中的日期时间类型 MySQL中常用的几种时间类型有:date.datetime.time.year.timestamp 数据类型 占用字节 最小值 最大值 零值表示 date 4 10 ...

  2. php mysql 时间字段_php – MySQL中各种日期/时间字段类型的优...

    > TIMESTAMP存储在MySQL专有方法中(尽管它基本上只是一个由年,月,日,小时,分钟和秒组成的字符串),此外,只要插入或更改记录,TIMESTAMP类型的字段就会自动更新.显式字段值给 ...

  3. MySQL中的日期和时间类型

    文章目录 1 MySQL中的日期和时间类型 1 MySQL中的日期和时间类型 日期与时间类型是为了方便在数据库中存储日期和时间而设计的,数据库有多种表示日期和时间的数据类型.其中,YEAR类型表示年, ...

  4. 面试官问:mysql中时间日期类型和字符串类型的选择

    摘要:MySQL中有多种表示时间日期的数据类型,主要有YEAR.TIME.DATE.DATETIME.TIMESTAMP等 本文分享自华为云社区<一针见血,mysql中时间日期类型和字符串类型的 ...

  5. MYSQL中的日期转换

    MYSQL中的日期转换 网址: http://www.eygle.com/digest/2006/09/mysql_date_convert.html 对于每个类型拥有的值范围以及并且指定日期何时间值 ...

  6. MySQL中常用日期时间函数及获得

    MySQL中常用日期时间函数: 下面的查询选择了所有记录,其date_col的值是在最后30天以内: mysql> SELECT something FROM table WHERE TO_DA ...

  7. mysql获取今天的最后一秒_在MySQL中获取日期的最后一秒?

    要在MySQL中获取日期的最后一秒,请使用INTERVAL命令.让我们首先创建一个表-mysql> create table DemoTable -> ( -> JoiningDat ...

  8. mysql怎么插入时间_如何在MySQL中插入日期?

    在MySQL中插入日期的方法:首先打开脚本文件:然后通过[INSERT INTO tablename (col_name, col_date) VALUE ('DATE: Auto CURDATE() ...

  9. mysql当前日期减去天数,有没有一种方法可以从MySQL中的日期中减去天数?

    是的,您可以使用date_sub()从日期中减去天数.以下是语法-select date_sub(yourColumnName,Interval yourAmountOfDays day) from  ...

最新文章

  1. 白嫖一时爽!一直白嫖一直爽!程序员必备神器!
  2. iOS游戏开发教程资源
  3. 瀑布流 颜色随机 加载滚动
  4. 做系统ghost步骤图解_Ghost 博客搭建超全指南
  5. Redis - Redis command timed out nested exception is io.lettuce.core.RedisCommandTimeoutException
  6. 160. 相交链表 golang
  7. 图形化安装配置:安装oracle、新建数据库、用plsql连接oracle,套路明白了其实挺简单...
  8. bigdecimal 加法_巧用加法的运算律,简化有理数的加法运算
  9. C++中? : 运算符的使用
  10. 全网最全Spring面试题之基础篇整理总结(共69题,附超详细解答)
  11. 如何在macOS Big Sur的Voice Memos中使用增强录音和智能文件夹?
  12. python基于高德地图坐标拾取系统获取地址坐标
  13. ASO优化经验:APP关键字优化的技巧
  14. [预推免]——中科院计算所
  15. python编写贪吃蛇大战_用Python实现贪吃蛇双人大战
  16. oracle cmd命令导入,oracle使用cmd命令导入数据库
  17. 1.2 电流和电压的参考方向
  18. 小白写了一堆if-else,大神实在看不下去了,竟然用策略模式直接摆平了
  19. 关键路径和前导图的计算
  20. freeswitch与外部网关链接

热门文章

  1. 实测2023款哪吒U-II,智驾功能对女司机很友好
  2. 分享99个ASP影音娱乐源码,总有一款适合您
  3. 国外最好的前端开发学习网站--TreeHouse
  4. android歌词文件夹,Android歌词文本解析
  5. python对平面设计帮助_Python图形设计
  6. java aescounterrng_理性讨论,rng在第三把的counter位上选择潘森辅助是不是败笔?...
  7. Linux-系统管理篇
  8. Android使用BACnet协议进行数据读写测试
  9. ------------解决 svchost 占用过高及磁盘最长活时间过高问题------win---------
  10. Speedoffice(word)文档如何插入表格