数据库中的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。