oracle 日期从秒到日

本文介绍在Oracle数据库中如何通过修改日期格式将查询结果从包含秒级精度调整为仅显示到日的日期格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

oracle  如果查出的日期是到秒的 

    select bank.FBankAccountNumber,company.FName_l2, FOPPBANKNUMBER,FOPPUNIT, to_char(FBIZTIME ,  'yyyy-MM-dd') FBIZTIME

 

to_char( FBIZTIME ,  'yyyy-MM-dd')  后面的日期格式直接改  查出就是到日的

<think>我们参考了引用[3]和引用[4]中的方法,Oracle中提取日期的年、月、、时、分、可以使用to_char函数,并指定相应的格式。 格式说明: 年:'yyyy' 或 'YYYY'(不区分大小写,但通常用大写) 月:'mm' 或 'MM' :'dd' 或 'DD' 小时(24小时制):'hh24' 小时(12小时制):'hh' 或 'HH'(注意:12小时制会显示1-12,需要结合上下午标识) 分钟:'mi' 或 'MI' :'ss' 或 'SS' 注意:在24小时制中,小时用'hh24'可以避免12小时制的上下午问题。 示例:假设有一个表名为mytable,日期字段为mydate(类型为DATE),提取年月时分(24小时制)的方法如下:</think>### Oracle SQL 提取日期字段的年月时分Oracle数据库中,可以使用`TO_CHAR()`函数配合特定格式模型提取日期字段的各个时间部分。以下是详细方法(假设表名为`your_table`,日期字段名为`date_column`): #### 1. **提取年份** ```sql SELECT TO_CHAR(date_column, 'YYYY') AS year FROM your_table; -- 4位年份(例:2023) SELECT TO_CHAR(date_column, 'YY') AS short_year FROM your_table; -- 2位年份(例:23) ``` #### 2. **提取月份** ```sql SELECT TO_CHAR(date_column, 'MM') AS month FROM your_table; -- 数字月份(01-12) SELECT TO_CHAR(date_column, 'MON') AS mon FROM your_table; -- 缩写月份(JAN, FEB等) SELECT TO_CHAR(date_column, 'MONTH') AS full_month FROM your_table; -- 全拼月份(JANUARY等) ``` #### 3. **提取** ```sql SELECT TO_CHAR(date_column, 'DD') AS day FROM your_table; -- 月中的(01-31) SELECT TO_CHAR(date_column, 'DDD') AS year_day FROM your_table; -- 年中的(001-366) SELECT TO_CHAR(date_column, 'D') AS week_day FROM your_table; -- 周中的(1-7,周=1) ``` #### 4. **提取时间** ```sql /* 24小时制 */ SELECT TO_CHAR(date_column, 'HH24') AS hour24, -- 小时(00-23) TO_CHAR(date_column, 'MI') AS minute, -- 分钟(00-59) TO_CHAR(date_column, 'SS') AS second -- (00-59) FROM your_table; /* 12小时制 */ SELECT TO_CHAR(date_column, 'HH') AS hour12, -- 小时(01-12) TO_CHAR(date_column, 'AM') AS am_pm -- 上下午标识(AM/PM) FROM your_table; ``` #### 5. **组合提取所有部分** ```sql SELECT TO_CHAR(date_column, 'YYYY') AS year, TO_CHAR(date_column, 'MM') AS month, TO_CHAR(date_column, 'DD') AS day, TO_CHAR(date_column, 'HH24') AS hour, TO_CHAR(date_column, 'MI') AS minute, TO_CHAR(date_column, 'SS') AS second FROM your_table; ``` #### ⚠️ 关键注意事项 1. **大小写敏感**: - 分钟必须用 `MI`(不是`MM`,`MM`表示月份)[^3][^4] - 24小时制需用 `HH24`,12小时制用 `HH` 或 `HH12`[^4] 2. **日期截取示例**: ```sql -- 从长日期字符串截取并转换(如"2023/08/15 14:30:45" → "2023-08-15") SELECT TO_CHAR(TO_DATE(SUBSTR(long_date_column, 1, 10), 'YYYY/MM/DD'), 'YYYY-MM-DD') FROM your_table; [^2] ``` 3. **系统当前时间**: ```sql SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS current_time FROM DUAL; -- 输出:2023-08-15 15:30:45 [^4] ``` --- ### 相关问题 1. Oracle中如何计算两个日期之间的时间差(如相差多少/小时)? 2. 如果日期字段存储为字符串类型,如何安全地转换为日期类型后再提取时间部分? 3. 在Oracle中如何按年月分组统计数据(如按月汇总销售额)? 4. 如何优化大数据量表的时间范围查询性能(如按月分区)? [^1]: 通用日期截取方法 [^2]: 字符串日期转换格式 [^3]: 时间部分格式大小写说明 [^4]: 完整日期时间提取示例
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值