Mysql中的时间类型

MySQL中的时间类型有date、datetime、time、year、timestamp,这些类型的区别如下:

时间类型   |  字节  |  最小值                             |  最大值                          |  零值表示
date            |    4      | 1000-01-01                     | 9999-12-31                   | 0000-00-00
datetime    |    8      | 1000-01-01 00:00:00  | 9999-12-31 23:59:59 | 0000-00-00 00:00:00
timestamp |    4      | 19700101080001          | 2038年的某个时刻     | 0000000000000000
time            |    3      |  -838:59:59                     | 838:59:59                    | 00:00:00
year             |    1      | 1901                                  | 2155                               | 0000

可以看出

date : 只有日期,没有时间;
datetime : 有时间,有日期;
timestamp : 时间戳,精确到分秒;
time : 只有时间 ,精确到分秒 ;
year : 年,如2002,如果写为 2002-01-15,将会进行计算,插入结果为1986

日期和字符之间相互转换

时间转字符

SELECT date_format(sysdate(),‘%Y-%m-%d %H:%i:%s’);

格式  描述
  • %a   缩写星期名
  • %b   缩写月名
  • %c    月,数值
  • %D   带有英文前缀的月中的天
  • %d    月的天,数值(00-31)
  • %e    月的天,数值(0-31)
  • %f     微秒
  • %H   小时 (00-23)
  • %h    小时 (01-12)
  • %I     小时 (01-12)
  • %i     分钟,数值(00-59)
  • %j     年的天 (001-366)
  • %k    小时 (0-23)
  • %l     小时 (1-12)
  • %M   月名
  • %m   月,数值(00-12)
  • %p    AM 或 PM
  • %r     时间,12-小时(hh:mm:ss AM 或 PM)
  • %S    秒(00-59)
  • %s    秒(00-59)
  • %T    时间, 24-小时 (hh:mm:ss)
  • %U    周 (00-53) 星期日是一周的第一天
  • %u    周 (00-53) 星期一是一周的第一天
  • %V    周 (01-53) 星期日是一周的第一天,与 %X 使用
  • %v     周 (01-53) 星期一是一周的第一天,与 %x 使用
  • %W   星期名
  • %w    周的天 (0=星期日, 6=星期六)
  • %X    年,其中的星期日是周的第一天,4 位,与 %V 使用
  • %x     年,其中的星期一是周的第一天,4 位,与 %v 使用
  • %Y     年,4 位
  • %y     年,2 位

字符转时间

str_to_date( ‘2016-12-15 16:48:40’, ‘%Y-%m-%d %H:%i:%S’ )

各占位符的含义同上。

 

转自https://blog.csdn.net/j080624/article/details/53419408


发表评论

电子邮件地址不会被公开。 必填项已用*标注