【发布时间】:2011-11-09 19:04:43
【问题描述】:
我尝试在日志表中插入一行,但它会引发错误消息。 >
log的表结构是这样的:
no integer NOT NULL nextval('log_no_seq'::regclass)
ip character varying(50)
country character varying(10)
region character varying(10)
city character varying(50)
postalCode character varying(10)
taken numeric
date date
和我的查询:
INSERT INTO log (ip,country,region,city,postalCode,taken,date) VALUES
("24.24.24.24","US","NY","Binghamton","11111",1,"2011-11-09")
=> ERROR: column "postalcode" of relation "log" does not exist
第二次尝试查询:(不含邮政编码)
INSERT INTO log (ip,country,region,city,taken,date) VALUES
("24.24.24.24","US","NY","11111",1,"2011-11-09")
=> ERROR: column "24.24.24.24" does not exist
我不知道我做错了什么......
而 PostgreSQL 没有 datetime 类型? (2011-11-09 11:00:10)
【问题讨论】:
-
PostgreSQL 有日期时间类型,它称之为timestamp。此外,该产品是 PostgreSQL,而不是 Postgre。如果你要缩短它,它会是 Postgres(这实际上是它在获得 SQL 支持之前的名称)。
-
双引号用于引号标识符(例如表名和列名),单引号用于字符串文字。
-
太棒了!谢谢谢谢谢谢!
-
发生的情况是人们在 MySQL 上学习,其中时间戳最初被定义为如果它是第一个时间戳列,则使用最新的时间戳自动更新。在意识到他们使用了 SQL 保留关键字和类型而不是指定的用途后,MySQL 坚持保持向后兼容性,需要一个不会自动更新的时间戳类型字段,因此他们发明了 datetime 作为一种类型。 SQL 规范使用时区类型定义了时间戳和时间戳。日期时间是 MySQL 的创造。希望他们至少能在过去的时候改变含义......
标签: postgresql timestamp