|
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 也不会显示小时分钟和秒。
|
|
|