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日期时间相关的更多相关文章

  1. jackson/fastjson、mybatis、mysql date/datatime/timestamp、java Date/Timestamp关系详解

    jackson/fastjson序列化/反序列化: 默认情况下,jackson/fastjson将java Date/Timestamp类型序列化为时间戳,也就是1970年1月1日0点以来的毫秒数.如 ...

  2. mysql建库DATETIME、DATE 和 TIMESTAMP区别

    http://blog.sina.com.cn/s/blog_5f7b8c2c0100tf6t.html     DATETIME.DATE 和 TIMESTAMP 类型是相似的.本篇描述了它们的特性 ...

  3. Mysql 实战关于date,datetime,timestamp类型使用

    最近在做一个项目 项目中 不同的小伙伴同时在不同的业务模块中用到了date,datetime,timestamp这三个类型 特别是datetime,timestamp这两个 如果不能理解到位  其实很 ...

  4. jdbc 日期时间相关的类型

    jdbc 日期时间相关的类型 1.sql.Date sql包中的日期类Date是util包中Date类的子类,实际上也是util.Date类的子集.它只处理年月日,而忽略小时和分秒,用以代表SQL的D ...

  5. 转 数据库中的 date datetime timestamp的区别

    转 数据库中的 date datetime timestamp的区别 DATETIME, DATE和TIMESTAMP类型是相关的.本文描述他们的特征,他们是如何类似的而又不同的. DATETIME类 ...

  6. mysql 中时间和日期函数应用

    一.MySQL 获得当前日期时间 函数 1.1 获得当前日期+时间(date + time)函数:now() mysql> select now(); +-------------------- ...

  7. MySQL 时间戳(Timestamp)函数

    1. MySQL 获得当前时间戳函数:current_timestamp, current_timestamp() mysql> select current_timestamp, curren ...

  8. MySQL的时间、日期型

    MySQL的时间.日期型 MySQL中表示时间值的有DATE.时间类型为DATETIME.DATE.TIMESTAMP.TIME和YEAR.每个时间类型有一个有效值范围和一个"零" ...

  9. Mysql date,datetime的区别以及相互转换

    参考:https://blog.csdn.net/a3025056/article/details/62885104/ 在数据库中一直有这三个时间类型有点搞不太清楚. 今天就来说一下之间的区别,其实是 ...

随机推荐

  1. VSCode设置中文语言显示

    Vscode是一款开源的跨平台编辑器.默认情况下,vscode使用的语言为英文(us),如何将其显示语言修改成中文了? 1)打开vscode工具: 2)使用快捷键组合[Ctrl+Shift+p],在搜 ...

  2. 基于vue的滚动条组件之--element隐藏组件滚动条scrollbar使用

    在项目中,总是需要用到滚动条,但windows浏览器默认的滚动条是很丑的,为了页面美观,可以考虑优化滚动条样式.  vue Element UI官方文档上并没有放出滚动条相关的示例说明,但是实际上是有 ...

  3. GEF入门实例_总结_05_显示一个空白编辑器

    一.前言 本文承接上一节:GEF入门实例_总结_04_Eclipse插件启动流程分析 在第三节( GEF入门实例_总结_03_显示菜单和工具栏  ),我们创建了菜单和工具栏. 这一节,我们来实现:点击 ...

  4. canvas基础学习(一)

    一.概述 canvas它和其它的HTML5标签的使用基本一致,但是它相当于在浏览器中建立一个画布,可以再这个画布上画图.创建动画甚至是3D游戏.由于canvas要适配不同终端的分辨率,所以尽可能的在标 ...

  5. Cow Exhibition (背包中的负数问题)

    个人心得:背包,动态规划真的是有点模糊不清,太过于抽象,为什么有些是从后面递推, 有些状态就是从前面往后面,真叫人头大. 这一题因为涉及到负数,所以网上大神们就把开始位置从10000开始,这样子就转变 ...

  6. UML类图与类的关系详解【转】

    在画类图的时候,理清类和类之间的关系是重点. 类的关系有泛化(Generalization).实现(Realization).依赖(Dependency)和关联(Association).其中关联又分 ...

  7. ubuntu 挂载exfat

    在ubuntu下,由于版权的原因,默认不支持exfat格式的u盘,不过可以很方便就能添加对exfat的支持: 1.对于ubuntu 14.04版本,直接运行下面的命令就可以了: sudo apt-ge ...

  8. Sqoop--Free-form Query Imports 自由查询模式下$CONDITIONS关键字的作用

    Scoop是用来实现HDFS文件系统和关系型数据库如MySQL之间数据传输和转换的工具. 从MySQL导出到HDFS可以通过--table, --columns and --where等设置数据抽出的 ...

  9. PHP 判断字符的编码 并输出想要的编码格式字符 (转)

    /** * 判断字符编码  并输出想要的编码 * Enter description here ... * @param unknown_type $string * @param unknown_t ...

  10. Apache Htpasswd生成和验证密码

    Assuming you create the password using the following command and "myPassword" as the passw ...