<分区>
我想以 .csv 格式从“My_Customer”表中导出数据。
我正在提取一个时间字段,但我得到的输出是毫秒数。
例如:
我得到的输出,
25-10-2017 12:53:12:00076
我想删除/截断毫秒。
预期输出-
25-10-2017 12:53:12
。
我试过 to_char()
但它没有给出正确的输出。 (不是给出该字段中可用的确切时间,而是四舍五入
)。
<分区>
我想以 .csv 格式从“My_Customer”表中导出数据。
我正在提取一个时间字段,但我得到的输出是毫秒数。
例如:
我得到的输出,
25-10-2017 12:53:12:00076
我想删除/截断毫秒。
预期输出-
25-10-2017 12:53:12
。
我试过 to_char()
但它没有给出正确的输出。 (不是给出该字段中可用的确切时间,而是四舍五入
)。
最佳答案
您可以将它转换为没有小数秒的时间戳(这将四舍五入到最接近的秒):
CAST( your_timestamp AS TIMESTAMP(0) )
或者到 DATE
数据类型(这将截断到最接近的秒):
CAST( your_timestamp AS DATE )
或者您可以将其转换为格式化字符串并指定您要使用的格式模型(这将截断到最接近的秒):
TO_CHAR( your_timestamp, 'YYYY-MM-DD HH24:MI:SS' )
像这样:
Oracle 11g R2 架构设置:
CREATE TABLE your_table ( your_timestamp ) AS
SELECT TIMESTAMP '2017-10-25 12:53:12.10076' FROM DUAL;
查询 1:
SELECT CAST( your_timestamp AS TIMESTAMP(0) ) AS "Timestamp",
CAST( your_timestamp AS DATE ) AS "Date",
TO_CHAR( your_timestamp, 'DD-MM-YYYY HH24:MI:SS' ) AS "String"
FROM your_table
Results :
| Timestamp | Date | String |
|-----------------------|----------------------|---------------------|
| 2017-10-25 12:53:12.0 | 2017-10-25T12:53:12Z | 25-10-2017 12:53:12 |
TIMESTAMP
和 DATE
的格式取决于您的 NLS_TIMESTAMP_FORMAT
和 NLS_DATE_FORMAT
session 参数,但您可以指定格式模型时直接控制 TO_CHAR
的格式。
关于sql - 如何从 Oracle 中的时间戳中删除毫秒?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46927041/
相关文章:
mysql/工作台 : why is on update CURRENT_TIMESTAMP added for not null timestamp
sql - 带有 WHERE 条件和 INNER JOIN 的 SELECT 命令
html - 如何让一组开发人员访问同一个共享点站点并一起开发?
datetime - 在Hive中将 'Mon Dec 12 10:55:11 UTC 2016'转换为日期时间
javascript - toLocaleString() 在 Android 中不适用于 React Native