数据库日期函数

313 阅读2分钟

MySQL、Oracle、达梦数据库(DM)和 PostgreSQL 在处理日期和时间方面提供了不同的函数和语法。下面是这四个数据库中常用日期函数的概览:

MySQL 日期函数

获取当前时间

NOW(): 返回当前日期和时间。
CURDATE(): 返回当前日期。
CURTIME(): 返回当前时间。

日期加减

DATE_ADD(): 添加时间间隔。
DATE_SUB(): 减去时间间隔。

日期格式化

DATE_FORMAT(): 格式化日期和时间。

字符串转日期

STR_TO_DATE(): 将字符串转换为日期。

日期部分提取

YEAR(), MONTH(), DAY(), HOUR(), MINUTE(), SECOND(): 提取日期和时间的各个部分。

Oracle 日期函数

获取当前时间

SYSDATE: 返回当前日期和时间。

日期加减

ADD_MONTHS(): 添加月份数。
NEXT_DAY(): 下一个工作日。
LAST_DAY(): 月份的最后一天。

日期格式化

TO_CHAR(): 格式化日期和时间。

字符串转日期

TO_DATE(): 将字符串转换为日期。

日期部分提取

TRUNC(): 截断日期。
EXTRACT(): 提取日期和时间的特定部分。

达梦数据库(DM)日期函数

获取当前时间

CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP: 返回当前日期、时间或日期时间。

日期加减

ADD_MONTHS(), NEXT_DAY(), LAST_DAY(): 日期加减操作。

日期格式化

TO_CHAR(): 格式化日期和时间。

字符串转日期

TO_DATE(): 将字符串转换为日期。

日期部分提取

TRUNC(): 截断日期。
EXTRACT(): 提取日期和时间的特定部分。

PostgreSQL 日期函数

获取当前时间

CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP: 返回当前日期、时间或日期时间。

日期加减

INTERVAL: 添加或减去时间间隔。

日期格式化

TO_CHAR(): 格式化日期和时间。

字符串转日期

TO_TIMESTAMP(): 将字符串转换为日期。

日期部分提取

EXTRACT(): 提取日期和时间的特定部分。
DATE_PART(): 返回日期和时间的特定部分。

日期截断

DATE_TRUNC(): 截断日期和时间到特定精度。

主要差异

获取当前时间

MySQL 使用 NOW(), CURDATE(), CURTIME();Oracle 使用 SYSDATE;DM 和 PostgreSQL 使用 CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP。

日期格式化,将日期转换为指定格式的字符串

MySQL 使用 DATE_FORMAT();Oracle、DM 和 PostgreSQL 使用 TO_CHAR()。

字符串转日期,将字符串转换为日期格式

MySQL 使用 STR_TO_DATE();Oracle 和 DM 使用 TO_DATE();PostgreSQL 使用 TO_TIMESTAMP().

日期加减

MySQL 使用 DATE_ADD(), DATE_SUB();Oracle 使用 ADD_MONTHS(), NEXT_DAY(), LAST_DAY();PostgreSQL 使用 INTERVAL。

日期截断

Oracle 使用 TRUNC();PostgreSQL 使用 DATE_TRUNC();DM 也使用 TRUNC()。

在进行数据库迁移或编写跨数据库兼容的代码时,了解这些函数的差异非常重要。每个数据库的函数都有其特定的语法和功能,因此在使用时需要根据具体的数据库进行适当的调整。