Oracle 时间的相关操作

with t_base as (
  select 
    -- 当前时间
    sysdate as sys_date,
    
    -- 当前时间戳(到纳秒,秒以下为假数据)
    to_timestamp(to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')||'.123456789','yyyy-mm-dd hh24:mi:ss.ff') as sys_timestamp
  from dual
)
select

  -- 当前时间
  sys_date as 当前DATE,

  -- 当前时间戳(到纳秒,秒以下为假数据)
  sys_timestamp as 当前TIMESTAMP,

  -- 日期转字符串,最多精确到秒
  to_char(sys_date,'yyyy-mm-dd hh24:mi:ss') as 当前DATE字符串,

  -- 时间戳转字符串,精确到秒
  to_char(sys_timestamp,'yyyy-mm-dd hh24:mi:ss') as 当前TIMESTAMP到秒字符串,

  -- 时间戳转字符串,精确到毫秒
  to_char(sys_timestamp,'yyyy-mm-dd hh24:mi:ss.ff3') as 当前TIMESTAMP到毫秒字符串,

  -- 时间戳转字符串,精确到微妙(一般系统能取到的最精确时间戳)
  to_char(sys_timestamp,'yyyy-mm-dd hh24:mi:ss.ff6') as 当前TIMESTAMP到微秒字符串,

  -- 时间戳转字符串,精确到纳秒(一般系统取不到)
  to_char(sys_timestamp,'yyyy-mm-dd hh24:mi:ss.ff9') as 当前TIMESTAMP到纳秒字符串,

  -- 时间戳转时间方法1(时间只能到秒)
  to_date(to_char(sys_timestamp,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss') TIMESTAMP转DATE1,

  -- 时间戳转时间方法2(时间只能到秒)
  sys_timestamp + 0 TIMESTAMP转DATE2,

  -- 时间转时间戳(只能精确到秒)
  to_timestamp(to_char(sys_date,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss') as DATE转TIMESTAMP

from t_base

你可能感兴趣的:(Database,Oracle,时间)