This page提到了如何在Oracle中将时间戳转换为分钟/小时/等。
如何以同样的方式将时间戳转换为秒?
发布于 2008-10-01 15:35:25
由于DATE
的精度是秒(而不是秒的分数),所以根本不需要TRUNC
。
数据类型TIMESTAMP
允许数秒的分数。如果您将其转换为DATE
,小数秒将被删除-例如
select cast(systimestamp as date)
from dual;
发布于 2010-01-21 22:08:04
我很抱歉,但我的前辈似乎都错了。
select cast(systimestamp as date) from dual
..does不会截断,而是舍入到下一秒。
我使用一个函数:
CREATE OR REPLACE FUNCTION TRUNC_TS(TS IN TIMESTAMP) RETURN DATE AS
BEGIN
RETURN TS;
END;
例如:
SELECT systimestamp
,trunc_ts(systimestamp) date_trunc
,CAST(systimestamp AS DATE) date_cast
FROM dual;
返回:
SYSTIMESTAMP DATE_TRUNC DATE_CAST
21.01.10 15:03:34,567350 +01:00 21.01.2010 15:03:34 21.01.2010 15:03:35
发布于 2008-10-01 16:19:26
关于截断Oracle日期的一般主题,下面是可在date trunc()和round()函数中使用的格式模型的文档链接
http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/functions242.htm#sthref2718
没有列出“秒”,因为DATE数据类型的粒度是秒。
https://stackoverflow.com/questions/158189
复制相似问题