You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ORACLE如何将带毫秒的timestamp(9)转换为无毫秒的日期类型

timestamp(9)字段截断毫秒保留日期类型实现方案

不同主流数据库的实现语法如下,所有方案均返回原生日期时间类型,不会转为字符串:

  • Oracle
    使用TRUNC函数指定精度到秒即可:
SELECT TRUNC(DATETIME_UTC, 'SS') AS DATETIME_UTC_NO_MS FROM 你的表名;
  • MySQL
    MySQL 8.0.28及以上版本可直接用DATE_TRUNC函数:
SELECT DATE_TRUNC('second', DATETIME_UTC) AS DATETIME_UTC_NO_MS FROM 你的表名;

低版本兼容写法:

SELECT CONVERT(DATETIME_UTC, DATETIME) AS DATETIME_UTC_NO_MS FROM 你的表名;
  • PostgreSQL
    使用DATE_TRUNC函数指定秒级精度:
SELECT DATE_TRUNC('second', DATETIME_UTC) AS DATETIME_UTC_NO_MS FROM 你的表名;
  • SQL Server
    通过DATEADD+DATEDIFF实现毫秒截断:
SELECT DATEADD(second, DATEDIFF(second, 0, DATETIME_UTC), 0) AS DATETIME_UTC_NO_MS FROM 你的表名;

以上写法只会截断毫秒/微秒部分,不会修改日期时间的其他取值。如果需要输出为2/3/2019 1:27:00 AM格式的字符串展示,可额外搭配对应数据库的日期格式化函数,转换后的数据类型为字符串,不再是原生日期类型。

内容的提问来源于stack exchange,提问作者Webb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 12:15:00