, 1999
在任何datestyle输入模式下都无歧义
1999-01-08
ISO-8601格式,任何方式下都是1999年1月8号,(建议格式)
1/8/1999
歧义,在MDY下是1月8号;在 DMY模式下读做8月1日
1/18/1999
在MDY模式下读做1月18日,其它模式下被拒绝
01/02/03
MDY模式下的2003年1月2日;DMY模式下的2003年2月1日;YMD 模式下的2001年2月3日 www.2cto.com
1999-Jan-08
任何模式下都是1月8日
Jan-08-1999
任何模式下都是1月8日
08-Jan-1999
任何模式下都是1月8日
99-Jan-08
在YMD模式下是1月8日,否则错误
08-Jan-99
1月8日,除了在YMD模式下是错误的之外
Jan-08-99
1月8日,除了在YMD模式下是错误的之外
19990108
ISO-8601; 任何模式下都是1999年1月8日
990108
ISO-8601; 任何模式下都是1999年1月8日
2). 时间:
以下为合法的时间格式列表:
例子
描述
04:05:06.789
ISO 8601
04:05:06
ISO 8601
04:05
ISO 8601
040506
ISO 8601
04:05 AM
与04:05一样;AM不影响数值
04:05 PM
与16:05一样;输入小时数必须 <= 12
04:05:06.789-8
ISO 8601
04:05:06-08:00
ISO 8601
04:05-08:00
ISO 8601
040506-08
ISO 8601
3). 时间戳:
时间戳类型的有效输入由一个日期和时间的联接组成,后面跟着一个可选的时区。因此,1999-01-08 04:05:06和1999-01-08 04:05:06 -8:00都是有效的数值。
2. 示例:
1). 在插入数据之前先查看datestyle系统变量的值:
MyTest=> show datestyle;
DateStyle
-----------
ISO, YMD
(1 row)
2). 创建包含日期、时间和时间戳类型的示例表:
MyTest=> CREATE TABLE testtable (id integer, date_col date, time_col time, timestamp_col timestamp); www.2cto.com
CREATE TABLE
3). 插入数据:
MyTest=> INSERT INTO testtable(id,date_col) VALUES(1, DATE'01/02/03'); --datestyle为YMD
INSERT 0 1
MyTest=> SELECT id, date_col FROM testtable;
id | date_col
----+------------
1 | 2001-02-03
(1 row)
MyTest=> set datestyle = MDY;
SET
MyTest=> INSERT INTO testtable(id,date_col) VALUES(2, DATE'01/02/03'); --datestyle为MDY
INSERT 0 1
MyTest=> SELECT id,date_col FROM testtable;
id | date_col
----+------------
1 | 2001-02-03
2 | 2003-01-02
MyTest=> INSERT INTO testtable(id,time_col) VALUES(3, TIME'10:20:00'); --插入时间。
INSERT 0 1
MyTest=> SELECT id,time_col FROM testtable WHERE time_col IS NOT NULL;
id | time_col
----+----------
3 | 10:20:00
(1 row)
MyTest=> INSERT INTO testtable(id,timestamp_col) VALUES(4, DATE'01/02/03');
INSERT 0 1
MyTest=> INSERT INTO testtable(id,timestamp_col) VALUES(5, TIMESTAMP'01/02/03 10:20:00');
INSERT 0 1
MyTest=> SELECT id,timestamp_col FROM testtable WHERE timestamp_col IS NOT NULL;
id | timestamp_col
----+---------------------
4 | 2003-01-02 00:00:00
5 | 2003-01-02 10:20:00
(2 rows)
四、布尔类型:
PostgreSQL支持标准的SQL boolean数据类型。boolean只能有两个状态之一:真(True)或 假(False)。该类型占用1个字节。 www.2cto.com
"真"值的有效文本值是:
TRUE
't'
'true'
'y'
'yes'
'1'
而对于"假"而言,你可以使用下面这些:
FALSE
'f'
'false'
'n'
'no'
'0'
见如下使用方式:
MyTest=> CREATE TABLE testtable (a boolean, b text);
CREATE TABLE
MyTest=> INSERT INTO testtable VALUES(TRUE, 'sic est');
INSERT 0 1
MyTest=> INSERT INTO testtable VALUES(FALSE, 'non est');
INSERT 0 1
MyTest=> SELECT * FROM testtable;
a | b
---+---------
t | sic est
f | non est
(2 rows)
MyTest=> SELECT * FROM testtable WHERE a;
a | b
---+---------
t | sic est
(1 row)
MyTest=> SELECT * FROM testtable WHERE a = true;
a | b www.2cto.com
---+---------