Mysql date, time, timestamp日期时间相关
date: 格式:YYYY-MM-DD,时间范围:[0000-00-00, 9999-12-31],存储空间:3bytes
time: 格式:HH:MM:SS,时间范围:[00:00:00, 23:59:59]
timestamp:
1 4个字节存储,时间范围为:'1970-01-01 00:00:01.000000' 到 '2038-01-19 03:14:07.999999'
2 以UTC格式(世界标准时间)保存
3 时间转化,存储时对当前的时区进行转换,检索时再转换回当前的时区
datetime:
1 8个字节存储,时间范围为:'1000-01-01 00:00:00.000000' 到 '9999-12-31 23:59:59.999999'
2 实际格式存储
3 与时区无关
参考资料:
1. http://dev.mysql.com/doc/refman/5.6/en/datetime.html
2. http://dev.mysql.com/doc/refman/5.6/en/timestamp-initialization.html
3. http://www.2cto.com/database/201308/233832.html
时间日期函数
1 获取当前日期/时间
SELECT CURRENT_DATE();
SELECT CURDATE();
SELECT UTC_DATE();
SELECT UTC_DATE;
SELECT CURRENT_TIME();
SELECT CURRENT_TIME;
SELECT UTC_TIME();
SELECT UTC_TIME;
SELECT CURRENT_TIMESTAMP();
SELECT CURRENT_TIMESTAMP;
SELECT UTC_TIMESTAMP();
SELECT UTC_TIMESTAMP;
SELECT LOCALTIMESTAMP();
SELECT LOCALTIMESTAMP;
SELECT LOCALTIME();
SELECT LOCALTIME;
SELECT NOW();
SELECT SYSDATE();
SYSDATE() 日期时间函数跟 NOW() 类似,不同之处在于:NOW() 在执行开始时值就得到了, SYSDATE() 在函数执行时动态得到值。
示例:

2 日期/时间函数:
DATE(expr)
DATEDIFF(expr1,expr2)
DATE_ADD(date,INTERVAL expr unit) -- unit: day, hour, minute, second, microsecond, week, month, quarter, year
|
unit 值
|
|---|
| MICROSECOND |
| SECOND |
| MINUTE |
| HOUR |
| DAY |
| WEEK |
| MONTH |
| QUARTER |
| YEAR |
| SECOND_MICROSECOND |
| MINUTE_MICROSECOND |
| MINUTE_SECOND |
| HOUR_MICROSECOND |
| HOUR_SECOND |
| HOUR_MINUTE |
| DAY_MICROSECOND |
| DAY_SECOND |
| DAY_MINUTE |
| DAY_HOUR |
| YEAR_MONTH |
DATE_FORMAT(date,format)
DATE_SUB(date,INTERVAL expr unit)
TIME(expr)
TIMEDIFF(expr1,expr2)
TIMESTAMP(expr)
TIMESTAMPADD(unit,interval,datetime_expr)
TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)
TIME_FORMAT(time,format)
YEAR(date)
YEARWEEK(date)
YEARWEEK(date,mode)
QUARTER(date)
MONTH(date)
MONTHNAME(date)
WEEK(date[,mode])
WEEKDAY(date)
WEEKOFYEAR(date)
DAY(date)
DAYNAME(date)
DAYOFMONTH(date)
DAYOFWEEK(date)
DAYOFWEEK(date)
DAYOFYEAR(date)
HOUR(time)
MINUTE(time)
SECOND(time)
MICROSECOND(expr)
LAST_DAY(date) -- 获取某月有多少天 SELECT DAY(LAST_DAY(NOW()));
ADDDATE(date,INTERVAL expr unit)
ADDDATE(expr,days)
ADDTIME(expr1,expr2)
3 日期/时间格式化
DATE_FORMAT(date,format)
示例:SELECT DATE_FORMAT('2018-01-02 03:04:05','%Y-%m-%d %H:%i:%S'); -- 对应Java yyyy-MM-dd HH:mm:ss
|
格式
|
描述
|
|---|---|
| %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 位 |
select get_format(date,'usa') ; -- '%m.%d.%Y'
select get_format(date,'jis') ; -- '%Y-%m-%d'
select get_format(date,'iso') ; -- '%Y-%m-%d'
select get_format(date,'eur') ; -- '%d.%m.%Y'
select get_format(date,'internal') ; -- '%Y%m%d'
select get_format(datetime,'usa') ; -- '%Y-%m-%d %H.%i.%s'
select get_format(datetime,'jis') ; -- '%Y-%m-%d %H:%i:%s'
select get_format(datetime,'iso') ; -- '%Y-%m-%d %H:%i:%s'
select get_format(datetime,'eur') ; -- '%Y-%m-%d %H.%i.%s'
select get_format(datetime,'internal') ; -- '%Y%m%d%H%i%s'
select get_format(time,'usa') ; -- '%h:%i:%s %p'
select get_format(time,'jis') ; -- '%H:%i:%s'
select get_format(time,'iso') ; -- '%H:%i:%s'
select get_format(time,'eur') ; -- '%H.%i.%s'
select get_format(time,'internal') ; -- '%H%i%s'
参考资料:
http://www.w3school.com.cn/sql/func_date_add.asp
http://www.cnblogs.com/redfox241/archive/2009/07/23/1529092.html
Mysql date, time, timestamp日期时间相关的更多相关文章
- jackson/fastjson、mybatis、mysql date/datatime/timestamp、java Date/Timestamp关系详解
jackson/fastjson序列化/反序列化: 默认情况下,jackson/fastjson将java Date/Timestamp类型序列化为时间戳,也就是1970年1月1日0点以来的毫秒数.如 ...
- mysql建库DATETIME、DATE 和 TIMESTAMP区别
http://blog.sina.com.cn/s/blog_5f7b8c2c0100tf6t.html DATETIME.DATE 和 TIMESTAMP 类型是相似的.本篇描述了它们的特性 ...
- Mysql 实战关于date,datetime,timestamp类型使用
最近在做一个项目 项目中 不同的小伙伴同时在不同的业务模块中用到了date,datetime,timestamp这三个类型 特别是datetime,timestamp这两个 如果不能理解到位 其实很 ...
- jdbc 日期时间相关的类型
jdbc 日期时间相关的类型 1.sql.Date sql包中的日期类Date是util包中Date类的子类,实际上也是util.Date类的子集.它只处理年月日,而忽略小时和分秒,用以代表SQL的D ...
- 转 数据库中的 date datetime timestamp的区别
转 数据库中的 date datetime timestamp的区别 DATETIME, DATE和TIMESTAMP类型是相关的.本文描述他们的特征,他们是如何类似的而又不同的. DATETIME类 ...
- mysql 中时间和日期函数应用
一.MySQL 获得当前日期时间 函数 1.1 获得当前日期+时间(date + time)函数:now() mysql> select now(); +-------------------- ...
- MySQL 时间戳(Timestamp)函数
1. MySQL 获得当前时间戳函数:current_timestamp, current_timestamp() mysql> select current_timestamp, curren ...
- MySQL的时间、日期型
MySQL的时间.日期型 MySQL中表示时间值的有DATE.时间类型为DATETIME.DATE.TIMESTAMP.TIME和YEAR.每个时间类型有一个有效值范围和一个"零" ...
- Mysql date,datetime的区别以及相互转换
参考:https://blog.csdn.net/a3025056/article/details/62885104/ 在数据库中一直有这三个时间类型有点搞不太清楚. 今天就来说一下之间的区别,其实是 ...
随机推荐
- uva 10168 哥德巴赫猜想
https://vjudge.net/problem/UVA-10168 给出一个整数n,问是否能将它化为四个素数相加的形式,如果可以的话就输出这四个数.显然n<8时是不可能的.对于大于等于8得 ...
- 慕课网python分布式爬虫打造搜索引擎视频中爬取伯乐网文章
代码:https://github.com/longbigbeard/scrapy_demo
- DocString
文档字符串:写注释专用的, 在函数的第一个逻辑行的字符串是这个函数的 文档字符串 .注意,DocStrings也适用于模块和类,我们会在后面相应的章节学习它们. 文档字符串的惯例是一个多行字符串,它的 ...
- 二叉排序树的应用(java)
package com.tree.find; public class TestSearchBST { private static class BiNode{ int data; BiNode lc ...
- mac外接键盘修饰键设置
command 和 control 互换,option保持不变即可,差不多可以做到类似windows快捷键的使用习惯.
- 19年博客flag
目录 为什么没有年终总结 为什么今天更新了 19年博客flag 个人博客链接:我在马路边 https://hhongwen.cn 更好的阅读体验点击查看原文:19年博客flag 原创博客,转载请注明出 ...
- Mayor's posters (线段树加离散化)
个人心得:线段树也有了一定的掌握,线段树对于区间问题的高效性还是挺好的,不过当区间过大时就需要离散化了,一直不了解离散化是什么鬼,后面去看了下 离散化,把无限空间中有限的个体映射到有限的空间中去,以此 ...
- LeetCode Longest Continuous Increasing Subsequence
原题链接在这里:https://leetcode.com/problems/longest-continuous-increasing-subsequence/description/ 题目: Giv ...
- ACC 001 C - Shorten Diameter 图论
题目: Problem Statement Given an undirected tree, let the distance between vertices \(u\) and \(v\) be ...
- Python List reverse()方法
reverse() 函数用于反向列表中元素,参数 NA,该方法没有返回值,但是会对列表的元素进行反向排序,原来的列表被改变,生成新的列表. 例子:list1 = ['Google', 'Runoob' ...