两种数据库对应的Date格式

Mysql中经常用来存储日期的数据类型有三种:Date、Datetime、Timestamp。

Date数据类型:用来存储没有时间的日期。Mysql获取和显示这个类型的格式为“YYYY-MM-DD”。支持的时间范围为“1000-00-00”到“9999-12-31”。

Datetime类型:存储既有日期又有时间的数据。存储和显示的格式为 “YYYY-MM-DD HH:MM:SS”。支持的时间范围是“1000-00-00 00:00:00”到“9999-12-31 23:59:59”。

Timestamp类型:也是存储既有日期又有时间的数据。存储和显示的格式跟Datetime一样。支持的时间范围是“1970-01-01 00:00:01”到“2038-01-19 03:14:07”。

所有不符合上面所述格式的数据都会被转换为相应类型的0值。(0000-00-00或者0000-00-00 00:00:00)

mysql数据库:它们分别是 date、datetime、time、timestamp和year。
date :“yyyy-mm-dd”格式表示的日期值
time :“hh:mm:ss”格式表示的时间值
datetime: “yyyy-mm-dd hh:mm:ss”格式
timestamp: “yyyymmddhhmmss”格式表示的时间戳值
year: “yyyy”格式的年份值。

date “1000-01-01”到“9999-12-31” 3字节
time “-838:59:59”到“838:59:59” 3字节
datetime “1000-01-01 00:00:00” 到“9999-12-31 23:59:59” 8字节
timestamp 19700101000000 到2037 年的某个时刻 4字节
year 1901 到2155 1字节

oracle数据库:
Date类型的内部编码为12
长度:占用7个字节
数据存储的每一位到第七位分别为:世纪,年,月,日,时,分,秒
TIMESTAMP是支持小数秒和时区的日期/时间类型。对秒的精确度更高
TIMESTAMP WITH TIME ZONE类型是TIMESTAMP的子类型,增加了时区支持,占用13字节的存储空间,最后两位用于保存时区信息
INTERVAL 用于表示一段时间或一个时间间隔的方法.在前面有多次提过.INTERVAL有两种类型.
YEAR TO MONTH 能存储年或月指定的一个时间段.
DATE TO SECOND存储天,小时,分钟,秒指定的时间段.

sql server:datetime和smalldatetime
datetime数据类型所占用的存储空间为8个字节,其中前4个字节用于存储1900年1月1日以前或以后的天数,数值分正负,正数表示在此日期之后的日期,负数表示在此日期之前的日期;后4个字节用于存储从此日零时起所指定的时间经过的毫秒数。
smalldatetime数据类型使用4个字节存储数据。其中前2个字节存储从基础日期1900年1月1日以来的天数,后两个字节存储此日零时起所指定的时间经过的分钟数。
smalldatetime数据类型与datetime数据类型相似,但其日期时间范围较小,从1900年1月1日到2079年6月6日。此数据类型精度较低,只能精确到分钟,其分钟个位为根据秒数四舍五入的值,即以30秒为界四舍五入。

 如果没有兼容多种数据库这个要求,我会毫不犹豫的使用数据库的Date类型。因为如果使用Java
 框架产生代码,对数据库中定义为Date类型的字段,甚至能在页面上产生出JS的时间选择框,
 的确能节省很多开发时间。
 而兼容不同数据库,就希望产品在由一种数据库,迁移到另外一种数据库时,尽可能小的代价,使
 用了Date,看来就很困难了。
  • str_to_date函数:将字符串转换为日期

作用:将‘日期字符串’转换为‘日期类型’数据
执行结果:DATE类型
用法:str_to_date(‘日期字符串’,‘日期格式’)

MySQL日期格式:
%Y:代表4位的年份
%y:代表2位的年份
%m:代表月,格式(01 …… 12)
%c:代表月,格式(1 …… 12)
%d:代表日
%H:代表小时,格式(00 …… 23)
%h:代表小时,格式(01 …… 12)
%i:代表分种,格式(00 …… 59)
%r:代表时间,格式为12 小时(hh:mm:ss [AP]M)
%T:代表时间,格式为24 小时(hh:mm:ss)
%S:代表秒,格式为(00……59)
%s:代表秒,格式为(00……59)

联想知识点:java中的日期格式
yyyy 年
MM 月
dd 日
HH 时
mm 分
ss 秒
SSS 毫秒

总结:
日期是数据库本身的特色,也是数据库本身机制中的一个重要内容,所以仍需掌握;
每一个数据库处理日期时采用的机制都不一样,都有自己的一套处理机制,所以在实际开发中将日期字段定义为DATE类型的情况很少;
如果使用日期类型,java程序将不能通用。实际开发中,一般会使用“日期字符串”来表示日期;

在这里插入图片描述

结论:str_to_date函数通常使用在插入操作中;字段DATA类型,不接收varchar类型,需要先通过该函数将varchar变成data再插入数据。

  • data_format函数:将日期转换为特定格式字符串

作用:将‘日期类型’转换为特定格式的‘日期字符串’类型
执行结果:字符串varchar类型(具有特定格式)
用法: date_format(日期类型数据,‘日期格式’)

MySQL日期格式:
%Y:代表4位的年份
%y:代表2位的年份
%m:代表月,格式(01 …… 12)
%c:代表月,格式(1 …… 12)
%d:代表日
%H:代表小时,格式(00 …… 23)
%h:代表小时,格式(01 …… 12)
%i:代表分种,格式(00 …… 59)
%r:代表时间,格式为12 小时(hh:mm:ss [AP]M)
%T:代表时间,格式为24 小时(hh:mm:ss)
%S:代表秒,格式为(00……59)
%s:代表秒,格式为(00……59)

联想知识点:java中的日期格式
yyyy 年
MM 月
dd 日
HH 时
mm 分
ss 秒
SSS 毫秒
在这里插入图片描述第二种:
在这里插入图片描述结论:data_format函数主要用在数据库查询操作中。实际工作中,客户需要日期以特定格式展示的时候,需要使用该函数

  • 9
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值