日期和时间函数SYSDATE、TO_DATE、TO_CHAR等在 Oracle 数据库中日期和时间函数用于处理日期和时间数据。它们在记录创建时间、分析时间间隔、格式化输出等场景中非常重要。本文将详细讲解常用的日期和时间函数及其应用。一、SYSDATE获取当前系统日期和时间1. 功能SYSDATE返回数据库服务器当前的日期和时间。2. 语法SYSDATE3. 示例SELECT SYSDATE AS current_date FROM dual; -- 结果2024-12-11 14:30:454. 提取日期的部分信息可以结合其他函数提取日期部分SELECT EXTRACT(YEAR FROM SYSDATE) AS current_year, EXTRACT(MONTH FROM SYSDATE) AS current_month, EXTRACT(DAY FROM SYSDATE) AS current_day FROM dual; -- 结果2024 | 12 | 11二、TO_DATE将字符串转换为日期1. 功能TO_DATE函数将字符串格式的日期转换为 Oracle 的日期类型。2. 语法TO_DATE(string, format_model)string待转换的日期字符串。format_model指定字符串的格式。3. 常用格式符号格式符描述YYYY四位年份MM两位月份DD两位日期HH2424 小时制小时MI分钟SS秒4. 示例SELECT TO_DATE(2024-12-11 14:30:45, YYYY-MM-DD HH24:MI:SS) AS converted_date FROM dual; -- 结果2024-12-11 14:30:45三、TO_CHAR将日期转换为字符串1. 功能TO_CHAR函数将日期类型的数据转换为指定格式的字符串。2. 语法TO_CHAR(date, format_model)date要转换的日期。format_model指定转换后的字符串格式。3. 示例将当前日期转换为指定格式SELECT TO_CHAR(SYSDATE, YYYY-MM-DD HH24:MI:SS) AS formatted_date FROM dual; -- 结果2024-12-11 14:30:45获取星期和月份名称SELECT TO_CHAR(SYSDATE, DAY) AS week_day, TO_CHAR(SYSDATE, MONTH) AS month_name FROM dual; -- 结果WEDNESDAY | DECEMBER四、日期加减运算Oracle 支持对日期进行加减操作直接以天为单位计算。1. 日期加法增加 10 天SELECT SYSDATE 10 AS future_date FROM dual; -- 结果2024-12-212. 日期减法减去 5 天SELECT SYSDATE - 5 AS past_date FROM dual; -- 结果2024-12-063. 计算两个日期的差值返回天数SELECT SYSDATE - TO_DATE(2024-12-01, YYYY-MM-DD) AS days_difference FROM dual; -- 结果10五、ADD_MONTHS增加或减少月份1. 功能ADD_MONTHS函数用于在指定日期上增加或减少指定的月数。2. 语法ADD_MONTHS(date, number_of_months)3. 示例SELECT ADD_MONTHS(SYSDATE, 3) AS future_date, ADD_MONTHS(SYSDATE, -3) AS past_date FROM dual; -- 结果2025-03-11 | 2024-09-11六、LAST_DAY和NEXT_DAY1.LAST_DAY获取指定月份的最后一天SELECT LAST_DAY(SYSDATE) AS last_day_of_month FROM dual; -- 结果2024-12-312.NEXT_DAY获取指定日期之后的下一个特定星期几SELECT NEXT_DAY(SYSDATE, FRIDAY) AS next_friday FROM dual; -- 结果2024-12-13七、日期格式化的常见应用1. 获取年、月、日SELECT TO_CHAR(SYSDATE, YYYY) AS year, TO_CHAR(SYSDATE, MM) AS month, TO_CHAR(SYSDATE, DD) AS day FROM dual; -- 结果2024 | 12 | 112. 获取时、分、秒SELECT TO_CHAR(SYSDATE, HH24) AS hour, TO_CHAR(SYSDATE, MI) AS minute, TO_CHAR(SYSDATE, SS) AS second FROM dual; -- 结果14 | 30 | 45八、综合实例1. 计算两日期间的完整月数差SELECT MONTHS_BETWEEN(TO_DATE(2025-06-01, YYYY-MM-DD), TO_DATE(2024-12-01, YYYY-MM-DD)) AS months_difference FROM dual; -- 结果62. 自动设置某日期为本月的第一天SELECT TRUNC(SYSDATE, MM) AS first_day_of_month FROM dual; -- 结果2024-12-013. 格式化输出为自定义字符串SELECT TO_CHAR(SYSDATE, Today is DDTH MONTH, YYYY) AS custom_format FROM dual; -- 结果Today is 11TH DECEMBER, 2024九、小结SYSDATE提供当前日期和时间。TO_DATE将字符串转换为日期格式灵活多样。TO_CHAR用于将日期转为自定义格式的字符串。日期计算和运算支持天数、月份、年等单位结合函数如ADD_MONTHS、LAST_DAY等可以轻松实现复杂的日期处理。通过熟练使用这些函数可以大幅提升日期和时间操作的效率和准确性。
2026年3月5日,Rust 官方正式发布了 1.94.0 稳定版,该版本虽未引入颠覆性的核心特性,却在标准库 API 稳定化、功能拓展和性能优化上带来了诸多实用更新。本次更新共稳定了12个新 API,同时放宽了部分现有 API 的使用约束,…