2

谁能告诉我哪个命令用于将三列数据连接到 PostgreSQL 数据库中的一列?

例如

如果列是

begin | Month | Year
   12 |     1 | 1988
   13 |     3 | 1900
   14 |     4 | 2000
   15 |     5 | 2012

结果像

Begin
12-1-1988 
13-3-1900
14-4-2000
15-5-2012
4

3 回答 3

10

只需使用连接运算符||http ://www.sqlfiddle.com/#!1/d66bb/2

select begin || '-' || month || '-' || year as begin 
from t;

输出:

|     BEGIN |
-------------
| 12-1-1988 |
| 13-3-1900 |
| 14-4-2000 |
| 15-5-2012 |

如果要更改开始列本身,开始列必须首先是字符串类型,然后执行此操作:http ://www.sqlfiddle.com/#!1/13210/2

update t set begin = begin || '-' || month || '-' || year ;

输出:

|     BEGIN |
-------------
| 12-1-1988 |
| 13-3-1900 |
| 14-4-2000 |
| 15-5-2012 |

更新

对这个:

but m not getting null value column date

用这个:

select (begin || '-' || month || '-' || year)::date as begin 
from t
于 2012-07-13T05:37:21.093 回答
2

看看9.4。字符串函数和运算符

于 2012-07-13T04:32:27.867 回答
0

这是一个旧帖子,但我偶然发现了它。创建日期数据类型不是更有意义吗?你可以这样做:

select make_date(year, month, begin)

日期似乎比字符串更有用(您甚至可以随意格式化它to_char())。

于 2017-06-27T02:25:55.730 回答