尝试了以下两种方式,将pg中的timestamp格式转换成date格式:

方式一:

```sql

select to_date( to_char( f.begin_time, 'yyyy-mm-dd' ), 'yyyy-mm-dd' ) from hafd f

```

方式二:

```sql

select f.begin_time::DATE from hafd f

```

大概比较了一下,9万条测试数据,方式二的性能更好!

. 将实数/双精度数转换成字串

方法1:to_char(125, '999')

解析:将数字125转换为字符'125'

```sql

SELECT TO_CHAR(125, '999');

```

方法2:to_char(double precision, text)

解析:将数字125.8转换为字符'125.8'

```sql

SELECT TO_CHAR(125.8, 'FM999D99');

```

2. 把numeric转换成字串

方法1:to_char(numeric, text)

解析:将数字125.8转换为字符'125.8'

```sql

SELECT TO_CHAR(NUMERIC '125.8', 'FM999D99');

```

3. 把字串转换成日期

方法1:to_date(text, text)

解析:将字符串'05 Dec 2000'转换为日期2000-12-05

```sql

SELECT TO_DATE('05 Dec 2000', 'DD Mon YYYY');

```

4. 把字串转换成时间戳

方法1:to_timestamp(text, text)

解析:将字符串'05 Dec 2000'转换为时间戳2000-12-05 00:00:00+0时区

```sql

SELECT TO_TIMESTAMP('05 Dec 2000', 'DD Mon YYYY');

```

方法2:to_timestamp(double)

解析:将UNIX纪元时间戳转换为日期时间2001-12-04 16:48:07 UTC+0时区(北京时间)

```sql

SELECT TO_TIMESTAMP(200120400);

```

5. 把UNIX纪元转换成时间戳

解析:将UNIX纪元时间戳转换为日期时间2001-12-04 16:48:07 UTC+0时区(北京时间)

```sql

SELECT TO_TIMESTAMP(200120400);

```

缩写日期名(3个字符)

在Python中,我们可以使用datetime模块来处理日期和时间。为了简化日期表示,我们可以使用缩写形式。以下是一些常用的缩写:

1. 年份缩写(4位数字):例如,2022可以表示为"2022"。

2. 月份缩写(2位数字):例如,9月可以表示为"09"。

3. 星期缩写(1个字符):例如,周日可以表示为"7"。

下面是一个使用datetime模块处理日期的示例:

```python

from datetime import datetime

# 将完整的日期字符串转换为datetime对象

date_str = "2022-09-07"

date_obj = datetime.strptime(date_str, "%Y-%m-%d")

print(date_obj)

# 获取日期的各个组成部分

year = date_obj.year

month = date_obj.month

day = date_obj.day

weekday = date_obj.weekday() + 1 # 周日是0,这里加1以匹配缩写形式

week = date_obj.strftime("%U") # 获取该月的第一周是一周中的第几周,1表示第一周

yearday = date_obj.timetuple().tm_yday # 获取一年中的第几天

print("Year:", year)

print("Month:", month)

print("Day:", day)

print("Weekday:", weekday)

print("Week:", week)

print("Yearday:", yearday)

```

以上代码将输出:

```

Year: 2022

Month: 9

Day: 7

Weekday: 7

Week: 35

Yearday: 184

```