我想将在数据库中存储为VARCHAR的时间转换为datetime,然后将秒数舍入为分钟。现在我在我的数据库中记录为“01:57:45”作为VARCHAR数据类型,我想将其转换为Datetime,然后舍入秒部分时间。 请帮助我, 我写了以下查询只是为了检索VARCHAR形式的时间。请给我相同的解决方案
SELECT WORK_COMPLETION_TIME FROM WORKASSIGNMENT
答案 0 :(得分:1)
为了得到今天的日期时间(四舍五入到最接近的分钟):
Oracle安装程序:
CREATE TABLE WorkAssignment( Work_Completion_Time ) AS
SELECT '01:57:45' FROM DUAL;
<强>查询强>:
SELECT ROUND(
TO_DATE(
TO_CHAR( SYSDATE, 'YYYYMMDD' ) || Work_Completion_Time,
'YYYYMMDDHH24:MI:SS'
),
'MI'
) AS rounded_time
FROM WorkAssignment
<强>输出强>:
(格式取决于您的NLS_DATE_FORMAT设置,因为它返回DATE
)
ROUNDED_TIME
-------------------
2016-03-04 01:58:00
查询 - 只需返回舍入的时间字符串:
SELECT TO_CHAR(
ROUND(
TO_DATE( Work_Completion_Time, 'HH24:MI:SS' ),
'MI'
),
'HH24:MI:SS'
) AS rounded_time
FROM WorkAssignment
<强>输出强>:
ROUNDED_TIME
------------
01:58:00