将日期转换为int类型时间戳,保存到数据库int类型列,推荐使用这种方式
将日期保存到数据库date类型列
把日期直接保存到char/varchar类型列,这种方式是最差的做法,无法比较日期大小,但是可以保存任何格式类型
现在数据库存入时间,一般情况下都是用的“时间戳
”这个概念。就是说1970年1月1日0时0分0秒到现在这个时间的秒数,一般数据库都有这个时间戳这个类型,像
SqlServer
,oracle。用时间戳,查询速度要比Date,datetime类型快很多,尤其是排序的时候
Oracle Databse 9i数据库引入了一种新特性,可以存储时间戳。时间戳可以存储世纪、4位年、月、日、时(以24小时格式)、分、秒。与DATE类型相比,时间戳具有以下优点:时间戳可以存储秒的小数位 时间戳可以存储时区。下面介绍时间戳类型。 时间戳类型类型说明TIMESTAMP[(seconds_precision)]存储世纪、4位的年、月、日、时(以24小时格式)、分和秒。seconds_precision为可选参数,用于指定精度,该参数为一个整数,范围从0~9,默认值为9;意思是表示秒的数字的小数点右边可以存储9位数字。如果试图在秒的小数中保存超过TIMESTAMP存储精度的数字,那么该小数将被取整TIMESTAMP[(seconds_precision)]WITH TIME ZONE扩展TIMESTAMP,用于存储时区TIMESTAMP[(seconds_precision)]WITH LOCAL TIME ZONE扩展TIMESTAMP,将给定的时间值转换成数据库的本地时区。转换过程称为时间值的规格化(normalizingv_timestamp := to_timestamp(to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss.ff') 我认为这句话的意思就是把系统时间转化为时间戳,目的是使时间更精确。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)