如何将TIMESTAMP类型列分别转换为DATE格式与纯时间格式?
解决方案
SQL 实现方式
根据你使用的数据库类型,用对应的格式化函数将TIMESTAMP转为指定格式的字符串,这样仪表盘展示时就只会显示目标内容:
MySQL/MariaDB
- 处理日期列:
DATE_FORMAT(occ.OCCURRENCEDATE, '%Y-%m-%d') AS date_column - 处理时间列:
DATE_FORMAT(occ.OCCURRENCETIME, '%H:%i:%s') AS time_column
PostgreSQL
- 处理日期列:
TO_CHAR(occ.OCCURRENCEDATE, 'YYYY-MM-DD') AS date_column - 处理时间列:
TO_CHAR(occ.OCCURRENCETIME, 'HH24:MI:SS') AS time_column
SQL Server
- 处理日期列:
FORMAT(occ.OCCURRENCEDATE, 'yyyy-MM-dd') AS date_column - 处理时间列:
FORMAT(occ.OCCURRENCETIME, 'HH:mm:ss') AS time_column
注:如果只是查询展示用,不用修改原表字段类型,直接在查询语句里格式化输出即可,既不会改变存储结构,又能满足仪表盘的显示需求。
Python 实现方式(基于Pandas,适合仪表盘数据预处理)
如果是用Python处理数据后再喂给仪表盘,用Pandas可以轻松拆分日期和时间:
import pandas as pd # 读取数据(假设从数据库读取或读入CSV) df = pd.read_sql("SELECT OCCURRENCEDATE, OCCURRENCETIME FROM your_table", your_db_connection) # 转换日期列:保留yyyy-mm-dd格式 df['date_column'] = pd.to_datetime(df['OCCURRENCEDATE']).dt.strftime('%Y-%m-%d') # 转换时间列:保留hh:mm:ss格式 df['time_column'] = pd.to_datetime(df['OCCURRENCETIME']).dt.strftime('%H:%M:%S') # 可选:如果不需要原TIMESTAMP列,可以删除 df = df.drop(['OCCURRENCEDATE', 'OCCURRENCETIME'], axis=1)
处理后date_column和time_column都是字符串类型,仪表盘展示时只会显示你需要的日期或时间内容,不会附带TIMESTAMP的额外信息。
内容的提问来源于stack exchange,提问作者Heisenstein
相关产品推荐
相关产品推荐

