世界杯主题曲歌词 / 2026-02-04 06:03:35

在 Oracle 数据库中,可以使用 TO_CHAR 和 TO_DATE 等函数对日期和时间进行格式化。以下是详细说明:

1. 日期转字符串(格式化日期)使用 TO_CHAR 将 日期类型(DATE 或 TIMESTAMP)格式化为 字符串:

SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS formatted_date FROM dual;

常见格式符号:

格式符说明示例(2025年2月6日 15:30:45)YYYY四位数年份2025YY两位数年份25MM两位数月份02MON三个字母的月份缩写FEBMONTH全称月份(自动填充空格)FEBRUARYDD两位数的日期06D一周中的第几天(1-7)5(周四)DAY星期几(填充空格)THURSDAYDY星期几缩写THUHH2424小时制小时15HH12小时制小时03MI分钟30SS秒45AM/PM上午/下午PM示例

SELECT TO_CHAR(SYSDATE, 'YYYY/MM/DD HH:MI:SS AM') FROM dual;

-- 2025/02/06 03:30:45 PM

2. 字符串转日期(解析字符串)使用 TO_DATE 将 字符串 转换为 日期类型:

SELECT TO_DATE('2025-02-06 15:30:45', 'YYYY-MM-DD HH24:MI:SS') FROM dual;

Oracle 默认格式 可能是 DD-MON-YY,如 06-FEB-25。

如果想存入 TIMESTAMP:

SELECT TO_TIMESTAMP('2025-02-06 15:30:45.123', 'YYYY-MM-DD HH24:MI:SS.FF3') FROM dual;

FF3 代表毫秒,可用 FF6 表示微秒。

3. 其他常见日期函数函数说明示例SYSDATE获取当前日期时间(DATE 类型)SELECT SYSDATE FROM dual;SYSTIMESTAMP获取带时区的当前时间(TIMESTAMP 类型)SELECT SYSTIMESTAMP FROM dual;CURRENT_DATE获取当前会话时区的日期SELECT CURRENT_DATE FROM dual;ADD_MONTHS增加/减少月份SELECT ADD_MONTHS(SYSDATE, 3) FROM dual;TRUNC截断日期(如取整到天)SELECT TRUNC(SYSDATE, 'MM') FROM dual;ROUND取整日期(如四舍五入到最近的月)SELECT ROUND(SYSDATE, 'MM') FROM dual;4. 时间计算计算 两个日期的间隔(天/小时/分钟):

SELECT (TO_DATE('2025-02-10', 'YYYY-MM-DD') - TO_DATE('2025-02-06', 'YYYY-MM-DD')) AS days_diff FROM dual;

-- 结果: 4(天数差)

计算 小时、分钟、秒差:

SELECT (TO_DATE('2025-02-06 18:00:00', 'YYYY-MM-DD HH24:MI:SS')

- TO_DATE('2025-02-06 15:30:00', 'YYYY-MM-DD HH24:MI:SS')) * 24 AS hours_diff FROM dual;

-- 结果: 2.5(小时差)

总结

TO_CHAR:日期转字符串(格式化显示)TO_DATE:字符串转日期(解析)SYSDATE / SYSTIMESTAMP:获取当前时间日期计算时,Oracle 的 DATE 默认包含 时分秒时间计算时,直接相减得到天数,乘以 24 转换为小时

浏览量: 953 相关文章: sql的between包不包含起止的两个临界值? 数据库oracle常用sql查询语句,适合新手学习练手 SQL中SYSDATE函数怎么使用? MySQL中日期和时间类型面试题 MyBatis 内置类型处理器介绍 如何用go语言连接oracle,并实现增删改查? 数据库排它锁是什么?有哪些使用场景?Oracle和MySQL的排它锁实现原理都是什么? PostgreSQL 和甲骨文对比有什么区别?

英雄联盟s7符文 英雄联盟S7符文系统深度解析
阑字的解释