You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将带微秒的日期转换为仅含日期时分秒的字符串列

从含微秒的日期列提取“日期 时:分:秒”格式字符串

问题说明

有个Date列存储的日期带微秒(用逗号分隔),示例数据如下:

Date
10/11/22 12:14:01,807000000
11/12/22 13:15:46,650000000
29/12/22 14:30:46,501000000

需要生成名为Date_string的字符串列,只保留“日期 时:分:秒”部分,期望结果:

Date_string
10/11/22 12:14:01
11/12/22 13:15:46
29/12/22 14:30:46

你试过的无效代码

select*, TO_CHAR(extract(hour from (Date)))||':'||TO_CHAR(extract(minute from (Date)))||':'||TO_CHAR(extract(second from (Date))) as Date_string
from table;

解决办法

情况1:Date列是字符串类型

直接截掉逗号及后面的内容即可,两种写法任选:

-- 用SUBSTRING截取
SELECT *, SUBSTRING("Date" FROM 1 FOR POSITION(',' IN "Date") - 1) AS Date_string
FROM your_table;

-- 用LEFT函数更简洁
SELECT *, LEFT("Date", POSITION(',' IN "Date") - 1) AS Date_string
FROM your_table;

情况2:Date列是时间戳类型

直接用TO_CHAR指定格式输出,精准匹配需求样式:

SELECT *, TO_CHAR("Date", 'DD/MM/YY HH24:MI:SS') AS Date_string
FROM your_table;

不确定列类型?用兼容写法

如果不确定列是字符串还是时间戳,先把字符串转成时间戳再格式化,适配性更强:

SELECT *, TO_CHAR(TO_TIMESTAMP("Date", 'DD/MM/YY HH24:MI:SS,US'), 'DD/MM/YY HH24:MI:SS') AS Date_string
FROM your_table;

原代码失效原因

你之前的SQL只提取了时分秒部分,完全丢失了日期内容,所以不符合需求。

内容的提问来源于stack exchange,提问作者Ruser-lab9

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 18:55:18