PostgreSQL 时间的有关问题 100分

PostgreSQL 时间的问题 100分

原来用MySQL数据库的,时间列是用datatime的 显示时间格式是YYYY-MM-DD hh:mm:ss的

现在换PostgreSQL数据库了 时间的类型我查了下 有timestamp with time zone类型和timestamp without time zone类型

timestamp with time zone类型显示的是”2010-04-13 09:37:11.89+09″ 最后有个时区的显示,格式也不对

timestamp without time zone类型显示的是虽然是YYYY-MM-DD hh:mm:ss格式,

但是我现在假如设定了时间列的类型为timestamp without time zone,我更新现在时间update xx set dt=now() 结果秒的位置出来了好几位 比如2010-04-13 09:37:11.265

我知道可以用 SET updatedt= CAST(to_char(now(), ‘YYYY/MM/DD HH24:MI:SS’) As timestamp without time zone)

这种方式来转换,但是有没有能够在建表的时候 能够和MySQL的datatime一样的类型呢 更新的时候set dt=now() 时间也是YYYY-MM-DD hh:mm:ss格式  

主要是我不太想动SQL文了 如果要这么转换太麻烦了

请教大虾们~~



timestamp是精确到毫秒级,小数点后面是表示毫秒。

应该不影响你的应用,大部分的客户端软件表示时间都精确到秒,所以传送到客户端都会截取到秒。




测试了一下,确实是这样,搜索了一下,似乎POSTGRESQL要准确到毫秒




客户端都可以自动截短的。




用字符串类型吧。




ALTER TABLE “EE” ADD COLUMN “DD” timestamp(0) without time zone;

这样就OK了




引用timestamp [ (p) ] [without time zone]

time ,timestamp 和interval 接受一个可选的精度值 p,这个精度值声明在秒域后面小数点之后保留的位数。 缺省的时候在精度上是没有明确的绑定的, p 有用的范围对 timestamp和 interval 是从 0 到大约 6。

对于 time 类型,如果使用了八字节的整数存储,那么 p 允许的范围是从 0 到 6,如果使用的是浮点数存储,那么这个范围是 0 到 10。

参考:

http://www.pgsqldb.org/pgsqldoc-8.1c/datatype-datetime.html

PostgreSQL 时间的有关问题 100分

相关文章:

你感兴趣的文章:

标签云: