良好的口碑是企业发展的动力
在Oracle数据库中,将 TIMESTAMP 类型转换为 DATE 类型时,会丢失小数秒(fractional seconds)的精度,因为 DATE 类型仅精确到秒。以下是两种常用方法:
CAST 函数|  | SELECT CAST(your_timestamp_column AS DATE) AS converted_date | 
|  | FROM your_table; | 
Oracle允许在需要 DATE 类型的上下文中直接使用 TIMESTAMP,系统会自动截断小数秒:
|  | SELECT your_timestamp_column AS converted_date | 
|  | FROM your_table; | 
| 特性 | TIMESTAMP | DATE | 
|---|---|---|
| 精度 | 精确到秒的小数部分(如毫秒) | 仅精确到秒 | 
| 存储范围 | 更大(支持纳秒) | 较小(1753-01-01 至 9999-12-31) | 
| 转换行为 | 显式/隐式截断小数秒 | 直接兼容 | 
|  | -- 原始TIMESTAMP(含小数秒) | 
|  | SELECT SYSTIMESTAMP FROM DUAL; | 
|  | -- 输出示例:28-MAY-25 10.30.45.123456 AM | 
|  | |
|  | -- 转换为DATE | 
|  | SELECT CAST(SYSTIMESTAMP AS DATE) FROM DUAL; | 
|  | -- 输出示例:28-MAY-25 10.30.45 AM(小数秒被截断) | 
.123456)会永久丢失。TIMESTAMP 包含时区(TIMESTAMP WITH TIME ZONE),需先转换为 TIMESTAMP 再转 DATE,或使用 AT TIME ZONE 调整时区后再转换。根据需求选择合适方法,显式 CAST 更推荐以明确意图。
全天候在线客服支持
10年互联网服务经验
全国300余家服务机构
1000余家合作企业