从dual选择localtimestamp;
上述查询显示此格式为22-FEB-12 04.27.02.225354000 PM。
如何编写查询以获得22-FEB-12 04.27.02 PM
答案 0 :(得分:2)
或者:
select current_date from dual;
或者:
select to_char(localtimestamp,'dd-MON-yyyy hh.mi.ss AM') from dual;
虽然两者都没有返回timestamp
格式。
答案 1 :(得分:0)
试试这个:
SELECT TO_CHAR(dateColumn, 'YYYY-MM-DD HH12.MI.SS PM')
查看文档以获取有关TO_CHAR功能的更多信息,以及支持的格式:
http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions180.htm#i1009324
http://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements004.htm
答案 2 :(得分:0)
如果结果必须是TIMESTAMP,则有几个选项。尝试运行以下内容:
SELECT LOCALTIMESTAMP,
CAST(LOCALTIMESTAMP AS TIMESTAMP(0)) AS CAST_TIMESTAMP0,
CURRENT_DATE,
CAST(CURRENT_DATE AS TIMESTAMP) AS DATE_CAST_TO_TIMESTAMP,
TO_TIMESTAMP(TO_CHAR(LOCALTIMESTAMP, 'DD-MON-YYYY HH24:MI:SS'), 'DD-MON-YYYY HH24:MI:SS') AS CHAR_TIMESTAMP,
CAST(TO_TIMESTAMP(TO_CHAR(LOCALTIMESTAMP, 'DD-MON-YYYY HH24:MI:SS'), 'DD-MON-YYYY HH24:MI:SS') AS TIMESTAMP(0)) AS TRUCATED_TIMESTAMP
FROM DUAL
请注意,CAST_TIMESTAMP0,CURRENT_DATE和DATE_CAST_TO_TIMESTAMP值将四舍五入到最接近的秒而不是截断 - 重新运行查询,直到LOCALTIMESTAMP的小数部分介于0.5和1.0之间才能看到这一点。如果您可以接受四舍五入的值,那么您就可以去了。如果不是,您可能需要使用最后两个版本将时间戳转换为字符串然后再返回。
另请注意,上面的CHAR_TIMESTAMP值仍然具有默认的小数位数,但都为零。如果你不想要这个,你需要使用TRUNCATED_TIMESTAMP值。
分享并享受。