尝试了以下两种方式,将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
```