MySql中的日期处理(适用于 MySQL 5.X 及以上版本)
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 及以上版本)相关推荐
- MySQL中的日期时间类型与格式化方式
[1]MySQL中的日期时间类型 MySQL中常用的几种时间类型有:date.datetime.time.year.timestamp 数据类型 占用字节 最小值 最大值 零值表示 date 4 10 ...
- php mysql 时间字段_php – MySQL中各种日期/时间字段类型的优...
> TIMESTAMP存储在MySQL专有方法中(尽管它基本上只是一个由年,月,日,小时,分钟和秒组成的字符串),此外,只要插入或更改记录,TIMESTAMP类型的字段就会自动更新.显式字段值给 ...
- MySQL中的日期和时间类型
文章目录 1 MySQL中的日期和时间类型 1 MySQL中的日期和时间类型 日期与时间类型是为了方便在数据库中存储日期和时间而设计的,数据库有多种表示日期和时间的数据类型.其中,YEAR类型表示年, ...
- 面试官问:mysql中时间日期类型和字符串类型的选择
摘要:MySQL中有多种表示时间日期的数据类型,主要有YEAR.TIME.DATE.DATETIME.TIMESTAMP等 本文分享自华为云社区<一针见血,mysql中时间日期类型和字符串类型的 ...
- MYSQL中的日期转换
MYSQL中的日期转换 网址: http://www.eygle.com/digest/2006/09/mysql_date_convert.html 对于每个类型拥有的值范围以及并且指定日期何时间值 ...
- MySQL中常用日期时间函数及获得
MySQL中常用日期时间函数: 下面的查询选择了所有记录,其date_col的值是在最后30天以内: mysql> SELECT something FROM table WHERE TO_DA ...
- mysql获取今天的最后一秒_在MySQL中获取日期的最后一秒?
要在MySQL中获取日期的最后一秒,请使用INTERVAL命令.让我们首先创建一个表-mysql> create table DemoTable -> ( -> JoiningDat ...
- mysql怎么插入时间_如何在MySQL中插入日期?
在MySQL中插入日期的方法:首先打开脚本文件:然后通过[INSERT INTO tablename (col_name, col_date) VALUE ('DATE: Auto CURDATE() ...
- mysql当前日期减去天数,有没有一种方法可以从MySQL中的日期中减去天数?
是的,您可以使用date_sub()从日期中减去天数.以下是语法-select date_sub(yourColumnName,Interval yourAmountOfDays day) from ...
最新文章
- 白嫖一时爽!一直白嫖一直爽!程序员必备神器!
- iOS游戏开发教程资源
- 瀑布流 颜色随机 加载滚动
- 做系统ghost步骤图解_Ghost 博客搭建超全指南
- Redis - Redis command timed out nested exception is io.lettuce.core.RedisCommandTimeoutException
- 160. 相交链表 golang
- 图形化安装配置:安装oracle、新建数据库、用plsql连接oracle,套路明白了其实挺简单...
- bigdecimal 加法_巧用加法的运算律,简化有理数的加法运算
- C++中? : 运算符的使用
- 全网最全Spring面试题之基础篇整理总结(共69题,附超详细解答)
- 如何在macOS Big Sur的Voice Memos中使用增强录音和智能文件夹?
- python基于高德地图坐标拾取系统获取地址坐标
- ASO优化经验:APP关键字优化的技巧
- [预推免]——中科院计算所
- python编写贪吃蛇大战_用Python实现贪吃蛇双人大战
- oracle cmd命令导入,oracle使用cmd命令导入数据库
- 1.2 电流和电压的参考方向
- 小白写了一堆if-else,大神实在看不下去了,竟然用策略模式直接摆平了
- 关键路径和前导图的计算
- freeswitch与外部网关链接
热门文章
- 实测2023款哪吒U-II,智驾功能对女司机很友好
- 分享99个ASP影音娱乐源码,总有一款适合您
- 国外最好的前端开发学习网站--TreeHouse
- android歌词文件夹,Android歌词文本解析
- python对平面设计帮助_Python图形设计
- java aescounterrng_理性讨论,rng在第三把的counter位上选择潘森辅助是不是败笔?...
- Linux-系统管理篇
- Android使用BACnet协议进行数据读写测试
- ------------解决 svchost 占用过高及磁盘最长活时间过高问题------win---------
- Speedoffice(word)文档如何插入表格