从dual中选择localtimestamp;如何避免localtimestamp的毫秒部分?
以上查询显示此格式的结果为22-FEB-12 04.27.02.225354000 PM。
如何编写查询来获取2月22日,12 02年4月27日下午
从dual中选择localtimestamp;如何避免localtimestamp的毫秒部分?
以上查询显示此格式的结果为22-FEB-12 04.27.02.225354000 PM。
如何编写查询来获取2月22日,12 02年4月27日下午
或者:
select current_date from dual;
或者:
select to_char(localtimestamp,'dd-MON-yyyy hh.mi.ss AM') from dual;
虽然没有返回timestamp
格式。
谢谢...第二个工程.. – user1148952 2012-02-22 11:24:11
试试这个:
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
如果其结果必然是一个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值。
分享和享受。
这只是实际数据的字符串表示形式。无论何时将其展示给用户,您都可能会应用格式。那么为什么要在数据库级别上打扰呢? – Joey 2012-02-22 11:11:00