Mysql中date,time,datetime,timestamp的区别

区别:

timestamp:时间戳。北京时间1970年01月01日08时00分00秒 起至现在的总秒数。

datetime:带时分秒的完整时间,例如:1970-01-01 10:00:00

date:不带时分秒,例如:1970-01-01

time:只有时分秒,但是需要注意:

  Time值得范围是从’-838:59:59’ 到’838:59:59’,Time类型不仅可以用于表示一天的时间(必须小于24小时),还可能为某个过去的时间或两个事件的时间间隔(可以大于24小  时,或者未负)

  为TIME列分配简写值时应注意。没有冒号,MySQL解释值时假定最右边的两位表示秒。(MySQL解释TIME值为过去的时间而不是当天的时间)。例如,你可能认为’1112’和1112  表示’11:12:00’(11点过12分),但MySQL将它们解释为’00:11:12’(11分,12 秒)。同样,’12’和12被解释为 ‘00:00:12’。相反,TIME值中使用冒号则肯定被看作当天的时间。也就  是说,’11:12’表示’11:12:00’,而不是’00:11:12’。

  超出TIME范围但合法的值被裁为范围最接近的端点。例如,’-850:00:00’和’850:00:00’被转换为’-838:59:59’和’838:59:59’。

  无效TIME值被转换为’00:00:00’。请注意由于’00:00:00’本身是一个合法TIME值,只从表内保存的一个’00:00:00’值还不能说出原来的值是 ‘00:00:00’还是不合法的值。

now().,curdate(),curtime(), UNIX_TIMESTAMP()

  NOW()函数以`'YYYY-MM-DD HH:MM:SS'返回当前的日期时间,可以直接存到DATETIME字段中。
  CURDATE()以’YYYY-MM-DD’的格式返回今天的日期,可以直接存到DATE字段中。
  CURTIME()以’HH:MM:SS’的格式返回当前的时间,可以直接存到TIME字段中。

  UNIX_TIMESTAMP() 返回时间戳

猜你喜欢

转载自www.cnblogs.com/flypea93/p/9207788.html
今日推荐