0
給定一個時間戳值,即「04-SEP-14 03.09.09.272949000 PM」,我如何獲得日期時間直到秒部分並清零微秒部分?如何將時間戳刪除到幾秒?
給出:04-SEP-14 03.09.09.272949000 PM 心願:04-SEP-14提前03.09.09.00 PM
感謝。
給定一個時間戳值,即「04-SEP-14 03.09.09.272949000 PM」,我如何獲得日期時間直到秒部分並清零微秒部分?如何將時間戳刪除到幾秒?
給出:04-SEP-14 03.09.09.272949000 PM 心願:04-SEP-14提前03.09.09.00 PM
感謝。
您可以使用the cast
function它轉換爲用構建一個零毫秒的TIMESTAMP:
with t as (
select to_timestamp('04-SEP-14 03.09.09.272949000 PM',
'DD-MON-RR HH:MI:SS.FF AM') as tstamp
from dual
)
select to_char(cast(tstamp as timestamp(0)), 'DD-MON-RR HH:MI:SS.FF2 AM')
from t;
TO_CHAR(CAST(TSTAMPASTIMESTAMP(0)),'DD-M
----------------------------------------
04-SEP-14 03:09:09.00 PM
你也可以投兩次:
cast(<your column>, timestamp(0))
使用CTE在你的價值傳遞,一次到DATE
去除毫秒,然後再回到TIMESTAMP:
with t as (
select to_timestamp('04-SEP-14 03.09.09.272949000 PM',
'DD-MON-RR HH:MI:SS.FF AM') as tstamp
from dual
)
select to_char(cast(cast(tstamp as date) as timestamp),
'DD-MON-RR HH:MI:SS.FF2 AM')
from t;
TO_CHAR(CAST(CAST(TSTAMPASDATE)ASTIMESTA
----------------------------------------
04-SEP-14 03:09:09.00 PM
...這是做更多的工作,以及更多的打字。
不能使用trunc(date)
因爲隱含的TIMESTAMP轉換爲DATE,並因爲日期已經在那個精度不能傳遞SS
爲fmt
反正。