㈠ 数据库中 日期的几种表示方法
Mysql中经常用来存储日期的数据类型有三种:Date、Datetime、Timestamp。
【1】Date数据类型:用来存储没有时间的日期。Mysql获取和显示这个类型的格式为“YYYY-MM-DD”。支持的时间范围为“1000-00-00”到“9999-12-31”。
【2】Datetime类型:存储既有日期又有时间的数据。存储和显示的格式为 “YYYY-MM-DD HH:MM:SS”。支持的时间范围是“1000-00-00 00:00:00”到“9999-12-31 23:59:59”。
【3】Timestamp类型:也是存储既有日期又有时间的数据。存储和显示的格式跟Datetime一样。支持的时间范围是“1970-01-01 00:00:01”到“2038-01-19 03:14:07”。
(1)date数据库中格式扩展阅读
切记不要用字符串存储日期
这种存储日期的方式的优点还是有的,就是简单直白,容易上手。但是,这是不正确的做法,主要会有下面两个问题:
1、字符串占用的空间更大。
2、字符串存储的日期比较效率比较低(逐个字符进行比对),无法用日期相关的 API 进行计算和比较。
DateTime 类型没有时区信息的
DateTime 类型是没有时区信息的(时区无关),DateTime 类型保存的时间都是当前会话所设置的时区对应的时间。
当你的时区更换之后,比如你的服务器更换地址或者更换客户端连接时区设置的话,就会导致你从数据库中读出的时间错误。不要小看这个问题,很多系统就是因为这个问题闹出了很多笑话。
Timestamp 和时区有关。Timestamp 类型字段的值会随着服务器时区的变化而变化,自动换算成相应的时间,说简单点就是在不同时区,查询到同一个条记录此字段的值会不一样。
㈡ SQL 中 date 与datetime的区别
区别1:
①date类型可用于需要一个日期值而不需要时间部分时;
②datetime类型:可用于需要同时包含日期和时间信息的值。
区别2:
①date:MySQL 以 'YYYY-MM-DD' 格式检索与显示date值;
②datetime:MySQL 以 'YYYY-MM-DD HH:mm:ss'格式检索与显示 DATETIME 类型。
区别3:
①date类型:支持的范围是 '1000-01-01' 到'9999-12-31';
②datetime类型:支持的范围是'1000-01-0100:00:00' 到 '9999-12-3123:59:59'。
㈢ 数据库中所有的数据类型
SQL 用于各种数据库抄的数据类型袭:
一、MySQL 数据类型:
在 MySQL 中,有三种主要的类型:Text(文本)、Number(数字)和 Date/Time(日期/时间)类型。
1、Text 类型。
㈣ 数据库中日期型数据的长度是几个字节
数据库中货币型字段占8个字节,另外日期型字段也占8个字节。
“自动编号”型字段长度为4个字节;备注型字段长度为65535个字节;文本型字段默认为50个字节,最长为255个字节。
㈤ oracle中日期型数据长度有什么不同
oracle数据类型看起来非常简单,但用起来会发现有许多知识点,本文是我对ORACLE日期数据类型的一些整理,都是开发入门资料,与大家分享:
注:由于INTERVAL及TIME ZONE实际用得比较少,所以本文内容未涉及这两个方面。
1、常用日期型数据类型
1.1、DATE
这是ORACLE最常用的日期类型,它可以保存日期和时间,常用日期处理都可以采用这种类型。DATE表示的日期范围可以是公元前4712年1月1日至公元9999年12月31日
date类型在数据库中的存储固定为7个字节,格式为:
第1字节:世纪+100
第2字节:年
第3字节:月
第4字节:天
第5字节:小时+1
第6字节:分+1
第7字节:秒+1
1.2、TIMESTAMP(p)
这也是ORACLE常用的日期类型,它与date的区别是不仅可以保
存日期和时间,还能保存小数秒,小数位数可以指定为0-9,默认为6位,所以最高精度可以到ns(纳秒),数据库内部用7或者11个字节存储,如果精度为
0,则用7字节存储,与date类型功能相同,如果精度大于0则用11字节存储。
格式为:
第1字节:世纪+100
第2字节:年
第3字节:月
第4字节:天
第5字节:小时+1
第6字节:分+1
第7字节:秒+1
第8-11字节:纳秒,采用4个字节存储,内部运算类型为整形
注:TIMESTAMP日期类型如果与数值进行加减运算会自动转换为DATE型,也就是说小数秒会自动去除。
1.3、DATE与TIMESTAMP类型内部存储验证
1 create table T
2 (
3 C1 DATE,
4 C2 TIMESTAMP(9)
5 );
6
7 insert into t(c1,c2) values(date'2010-2-12',timestamp'2010-2-12 13:24:52.234123211');
8 insert into t(c1,c2) values(
9 to_date('2010-2-12 10:20:30','YYYY-MM-DD HH24:MI:SS'),
10 to_timestamp('2010-2-12 13:24:52.123456','YYYY-MM-DD HH24:MI:SS.FF6')
11 );
12
13 SQL> select c1,mp(c1) c1_d,c2,mp(c2) c2_d from t;