数据库中的timestamp类型类似于linux系统 中的unix timestamp,是一个记录了从格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数,有些数据库在此基础之上做了一些扩展,下边对于传统数据库中的timestamp类型进行 一下简单介绍:
1、范围:从1970-01-01 00:00:00到2037年。 (datetime类型的范围要比这个大的多,
1000-01-01 00:00:00到9999-12-31 23:59:59)。
2、精度timestamp的精度默认是到秒,也可以指定精度为毫秒、微妙。其方法就是timestamp(3)指毫秒,timestamp(6)微秒。在数据库内部实现时,默认精度和指定精度的实现方式也是不同的,默认精度timestamp是用unix timestamp实现 。当指定为毫秒、微秒时,unix timestamp是不满足的,因为unix timestamp只是精确到秒。若是指定精度为毫秒、微秒后,实现方式为linux内核中的一个取当前时间一种方式,结构体如下:
struct timeval{__time_t tv_sec; /* Seconds. */__suseconds_t tv_usec; /* Microseconds. */};其中tv_sec是秒数,tv_usec
是微秒数。当精度为毫秒时表示为tv_sec*1000+tv_usec/1000,精度为微秒时表示 为tv_sec*1000000+tv_usec。