mysql 数据库时间类型字段有:date,time,year,datetime,timestamp几种类型。

 

 

字符串类型数据列的字符集属性

在 MySQL 4.1 以前的版本,字符串数据列的字符集由服务器的字符决定, MySQL 4.1 版以后的版本可对每个字符串数据列指定不同的字符串。如果按默认方式设置,可按数据列、数据表、数据库、服务器的顺序关联字符串的字符集,直到找一个明确定义的字符集。

日期 , 时间型数据列类型

DATE  1000-01-01~9999-12-31 3 字节 (MySQL3.23 版以前是 4 字节  ) 0000-00-00 
TIME  -838:59:59~838:59:59 3 字节  00:00:00 
DATETIME  1000-01-01 00:00:00~9999-12-31 23:59:59 8 字节  0000-00-00 00:00:00 
TIMESTAMP  19700101000000~2037 年的某个时刻  4 字节  00000000000000 
YEAR  YEAR(4) : 1901~2155 YEAR(2) : 1970~2069 1 字节  0000 

MySQL 总是把日期和日期里的年份放在最前面,按年月日的顺序显示。

DATE 、 TIME 、 DATATIME 数据列类型

DATE 、 TIME 和 DATATIME 类型分别存放日期值、时间值、日期和时间值的组合。它们的格式分别是 “CCYY-MM-DD” 、 “hh:mm:ss” 、 “CCYY-MM-DD hh:mm:ss” 。

DATATIME 里的时间值和 TIME 值是有区别的, DATATIME 里的时间值代表的是几点几分, TIME 值代表的是所花费的时间。当向 TIME 数据列插值时,需用时间的完整写法,如 12 分 30 秒要写成 “00:12:30” 。

TIMESTAMP 数据列类型

TIMESTAMP 数据列的格式是 CCYYMMDDhhmmss ,取值范围从 19700101000000 开始,即 1970 年 1 月 1 号,最大到 2037 年。它的特点是能把数据行的创建或修改时间记录下来:

如果把一个 NULL 值插入 TIMESTAMP 列,这个数据列就将自动取值为当前的日期和时间。

在创建和修改数据行时,如果没有明确对 TIMESTAMP 数据列进行赋值,则它就会自动取值为当前的日期和时间。如果行中有多个 TIMESTAMP 列,只有第一个会自动取值。

如果对 TIMESTAMP 设置一个确定的日期和时间值,则会使 TIMESTAMP 的自动取值功能失效。

TIMESTAMP 默认的列宽是 14, 可指定列宽,以改变显示效果。但不论你指定的列宽如何, MySQL 都是以 4 字节来存储 TIMESTAMP 值,也总是以 14 位精度来计算。

如果需要把创建时间和最近一次修改时间同时记录下来,可以用两个时间戳来记录,一个记录创建时间,一个记录修改时间。不过需记住两件事,一是要把记录修改时间的 TIMESTAMP 数据列放在最前面,这样才会自动取值;二是创建一条新记录时,要用 now() 函数来初始化创建时间 TIMESTAMP 数据列,这样,该 TIMESTAMP 数据列就不会再变化。

YEAR

YEAR 是一种单字节的数据列类型, YEAR(4) 的取值范围是 1901~2155,YEAR(2) 的取值范围是 1970~2069, 但只显示最后两位数。 MySQL 能自动把两位数字年份转换成四位数字的年份,如 97 和 14 分被转换成 1997 和 2014 。转换规则是这样的:

年份值 00~69 将被转换成 2000~2069 ;

年份值 70~99 将被转换成 1970~1999 。
 
00 被转换成 0000, 而不是 2000 。因为数值 00 也就是 0, 而 0 值是 YEAR

 

java方式获取Mysql的时间很灵活,可以用

 

journalDailyMeeting.setNext_meeting_time(ret.getDate("next_meeting_time"));
journalDailyMeeting.setNext_meeting_time(ret.getTimestamp("next_meeting_time"));

 

journalDailyMeeting.setNext_meeting_time(ret.String("next_meeting_time"));

 

注意:可以用getString获取时间。

 

oracle必须用getDate

 

mysql 用getDate 展示的是yyyy-MM-dd  即便是你数据库里面展示的是 datetime  也不会显示小时分钟和秒。