• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

mysql 时间有关问题

mysql 搞代码 7年前 (2018-06-04) 162次浏览 已收录 0个评论

mysql 时间问题

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")); 

欢迎大家阅读《mysql 时间有关问题》,跪求各位点评,by 搞代码

 

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

 

 


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:mysql 时间有关问题

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址