PostgreSQL新的日期格式

时间:2015-11-11 07:18:28

标签: sql database postgresql format

我正在尝试将我的日期列格式化为' YYYYMM'来自&YYYY-MM-DD'。

我的代码: SELECT to_char(date' 2015-06-01',' YYYYMM');

我不确定这是否有效,因为日期仍然看起来像原始格式。此外,新的' YYYYMM'格式是否应用于此表中导入的数据?

1 个答案:

答案 0 :(得分:2)

date类型实现为2000-01-01的天数 - 此数字没有任何可视形式 - 它只是偏移量。您可以更改数据可视化时使用的可视化。

postgres=# set datestyle to ISO;
postgres=# select current_date;
┌────────────┐
│    date    │
╞════════════╡
│ 2015-11-11 │
└────────────┘
(1 row)

postgres=# set datestyle to GERMAN;
postgres=# select current_date;
┌────────────┐
│    date    │
╞════════════╡
│ 11.11.2015 │
└────────────┘
(1 row)

还有其他辅助功能可用于格式化日期to_char和处理日期字符串to_datedatestyle可用的样式集是有限的。更多datestyle是全局变量,使用它会增加应用程序中不需要的缺陷的风险 - 因此不首选使用datestyle

postgres=# select to_char(current_date, 'YYYYMM');
┌─────────┐
│ to_char │
╞═════════╡
│ 201511  │
└─────────┘
(1 row)
set datestyle to iso;
postgres=# select to_date('201511','YYYYMM');
┌────────────┐
│  to_date   │
╞════════════╡
│ 2015-11-01 │
└────────────┘
(1 row)

默认情况下,数据以文本格式从Postgres传送到客户端。因此,这些格式化功能(功能)的使用会影响客户端的接收数据(来自数据库)。 to_char显式转换为文本类型,因此任何客户端都可以读取它(因为它必须能够读取文本)。