oracle 时间格式化函数

oracle 时间格式化函数

当然,以下是关于 Oracle 数据库中时间格式化函数的详细文档。

Oracle 时间格式化函数

在 Oracle 数据库中,日期和时间数据通常存储在 DATE 或 TIMESTAMP 数据类型中。为了将这些日期和时间值格式化为特定的字符串表示形式,Oracle 提供了一系列内置的函数和格式化模式。本文将介绍这些常用的时间和日期格式化函数及其用法。

一、TO_CHAR 函数

TO_CHAR 函数用于将日期或数字数据类型转换为字符串。对于日期和时间,它允许你指定输出格式。

语法:

TO_CHAR(date_value, 'format_model')

参数说明:

  • date_value: 要转换的日期或时间值。
  • 'format_model': 用于定义输出格式的模型字符串。

常用格式元素:

  • YYYY: 四位数的年份
  • MM: 两位数的月份(01 到 12)
  • DD: 两位数的日期(01 到 31)
  • HH24: 两位数的小时(00 到 23)
  • MI: 两位数的分钟(00 到 59)
  • SS: 两位数的秒(00 到 59)

示例:

SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS formatted_date FROM dual; -- 输出类似于:2023-10-05 14:30:00

二、TO_DATE 函数

TO_DATE 函数用于将字符串转换为日期值。它同样需要一个格式模型来解析输入字符串。

语法:

TO_DATE(char[, format_model][, nls_language])

参数说明:

  • char: 要转换的字符串。
  • format_model: 可选参数,用于定义输入字符串的格式。如果省略,Oracle 将使用默认的日期格式。
  • nls_language: 可选参数,用于指定语言环境的特定日期格式。

示例:

SELECT TO_DATE('2023-10-05', 'YYYY-MM-DD') AS date_value FROM dual; -- 输出:2023-10-05 00:00:00

三、TO_TIMESTAMP 函数

TO_TIMESTAMP 函数与 TO_DATE 类似,但它用于将字符串转换为 TIMESTAMP 值,支持更高的精度(包括小数秒)。

语法:

TO_TIMESTAMP(char[, format_model][, nls_language])

参数说明:

  • char: 要转换的字符串。
  • format_model: 可选参数,用于定义输入字符串的格式。
  • nls_language: 可选参数,用于指定语言环境的特定时间戳格式。

示例:

SELECT TO_TIMESTAMP('2023-10-05 14:30:00.123', 'YYYY-MM-DD HH24:MI:SS.FF3') AS timestamp_value FROM dual; -- 输出:2023-10-05 14:30:00.123000

四、TRUNC 函数

TRUNC 函数用于截断日期或时间到指定的部分(例如年、月、日等)。

语法:

TRUNC(date_value[, format_model])

参数说明:

  • date_value: 要截断的日期或时间值。
  • format_model: 可选参数,用于指定截断到的部分(如 'YEAR', 'MONTH', 'DAY' 等)。

示例:

SELECT TRUNC(SYSDATE, 'YEAR') AS truncated_date FROM dual; -- 输出:2023-01-01 00:00:00

五、ROUND 函数

ROUND 函数用于对日期进行四舍五入操作,通常用于处理时间部分。

语法:

ROUND(date_value[, format_model])

参数说明:

  • date_value: 要四舍五入的日期或时间值。
  • format_model: 可选参数,用于指定四舍五入到的部分(如 'HOUR', 'MINUTE' 等)。

示例:

SELECT ROUND(TO_TIMESTAMP('2023-10-05 14:30:45', 'YYYY-MM-DD HH24:MI:SS'), 'HOUR') AS rounded_timestamp FROM dual; -- 输出:2023-10-05 15:00:00.000000

六、EXTRACT 函数

EXTRACT 函数用于从日期或时间中提取特定的部分(例如年、月、日、小时等)。

语法:

EXTRACT(field FROM source)

参数说明:

  • field: 要提取的部分(如 YEAR, MONTH, DAY, HOUR, MINUTE, SECOND 等)。
  • source: 日期或时间值。

示例:

SELECT EXTRACT(YEAR FROM SYSDATE) AS year_part FROM dual; -- 输出:2023

希望这份文档能帮助你更好地理解和使用 Oracle 数据库中的时间格式化函数。如果你有任何问题或需要进一步的帮助,请随时提问!