梧桐数据库-关于梧桐数据库日期的处置惩罚履历分享

打印 上一主题 下一主题

主题 805|帖子 805|积分 2415

一、阐明

​ 在日常的数据加工、搬迁等操作过程中,账期字段是一个无法制止的字段,在日常工作中须要使用账期字段(必须是 date 类型)来举行报表的筛选年、月、日,但是在梧桐数据库中,date 的数据格式为 YYYY-MM-DD HH24:MI:SS 类型,固涉及到一些相应的转换。
二、部分使用履历

Q1:在差异数据库中,日期的输出(梧桐数据库、mysq、oracle)。

1.获取当前日期和时间



  • 梧桐数据库:
    1. SELECT CURRENT_DATE; -- 当前日期
    2. SELECT CURRENT_TIMESTAMP; -- 当前日期和时间
    复制代码
  • MySQL:
    1. SELECT CURDATE(); -- 当前日期
    2. SELECT NOW();     -- 当前日期和时间
    复制代码
  • Oracle:
    1. SELECT SYSDATE FROM DUAL; -- 当前日期和时间
    复制代码
2.日期比较



  • 梧桐数据库:
    1. SELECT * FROM table_name WHERE date_column >= '2024-08-21';
    复制代码
  • MySQL:
    1. SELECT * FROM table_name WHERE date_column >= '2024-08-21';
    复制代码
  • Oracle:
    1. SELECT * FROM table_name WHERE date_column >= TO_DATE('2024-08-21', 'YYYY-MM-DD');
    复制代码
3.日期加减



  • 梧桐数据库:
    1. SELECT date_column + INTERVAL '1 day' FROM table_name;
    复制代码
  • MySQL:
    1. SELECT DATE_ADD(date_column, INTERVAL 1 DAY);
    复制代码
  • Oracle:
    1. sql
    2. SELECT date_column + 1 FROM table_name; -- 加一天
    复制代码
4.提取日期部分



  • 梧桐数据库:
    1. SELECT EXTRACT(YEAR FROM date_column), EXTRACT(MONTH FROM date_column), EXTRACT(DAY FROM date_column) FROM table_name;
    复制代码
  • MySQL:
    1. SELECT YEAR(date_column), MONTH(date_column), DAY(date_column) FROM table_name;
    复制代码
  • Oracle:
    1. SELECT EXTRACT(YEAR FROM date_column), EXTRACT(MONTH FROM date_column), EXTRACT(DAY FROM date_column) FROM table_name;
    复制代码
5.日期格式转换



  • 梧桐数据库:
    1. SELECT TO_CHAR(date_column, 'YYYY-MM-DD HH24:MI:SS') FROM table_name;
    复制代码
  • MySQL:
    1. SELECT DATE_FORMAT(date_column, '%Y-%m-%d %H:%i:%s') FROM table_name;
    复制代码
  • Oracle:
    1. SELECT TO_CHAR(date_column, 'YYYY-MM-DD HH24:MI:SS') FROM table_name;
    复制代码
6.计算两个日期之间的差异



  • 梧桐数据库:
    1. SELECT end_date_column - start_date_column FROM table_name;
    复制代码
  • MySQL:
    1. SELECT DATEDIFF(end_date_column, start_date_column) FROM table_name;
    复制代码
  • Oracle:
    1. SELECT (end_date_column - start_date_column) FROM table_name;
    复制代码
7.截取日期到指定的精度



  • 梧桐数据库:
    1. SELECT date_trunc('hour', date_column) FROM table_name; -- 截取到小时
    复制代码
  • MySQL:
    1. -- 不直接支持截取到小时或分钟,可以使用DATE_FORMAT
    2. SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:00:00');
    复制代码
  • Oracle:
    1. SELECT TRUNC(date_column, 'HH24') FROM table_name; -- 截取到小时
    复制代码
Q2:数据账期在梧桐数据库中的截取

  1. select * from y_t_m where to_char(stat_month, 'YYYYMM')='202407'
复制代码
通常情况下习惯使用 YYYYMM 格式作为月账期,在梧桐数据库下举行账期比较时,使用该查询语句会将 date 类型 stat_month 字段的日期格式化为 YYYYMM 的字符串格式,然后与字符串’202407’举行比较。
Q3:在梧桐数据库中,获取日期的年、月、日等。

  1. SELECT EXTRACT(YEAR FROM date_column), EXTRACT(MONTH FROM date_column), EXTRACT(DAY FROM date_column) FROM table_name;
复制代码
梧桐数据库提供了多种日期函数,如AGE(), EXTRACT(), DATE_TRUNC()等。
注解:
AGE() 函数

AGE() 函数用于计算两个日期之间的差异,大概计算从指定日期到当前日期的差异。如果你只提供一个日期参数,AGE() 会计算从谁人日期到当前日期的年龄。结果以“年 月 天”的格式返回。例如,计算一个出生于2000年1月1日的人在当前日期的年龄:
  1. SELECT AGE(timestamp '2000-01-01');
复制代码
这将返回类似 “21 years 4 mons 12 days” 的结果,表示从2000年1月1日到当前日期的年龄 。
DATE_TRUNC() 函数

DATE_TRUNC() 函数用于将时间戳或间隔值截断到指定的精度级别。例如,如果你想截断一个时间戳到小时级别,可以使用以下 SQL 语句:
  1. SELECT DATE_TRUNC('hour', TIMESTAMP '2017-03-17 02:09:30');
复制代码
这将返回时间戳,精确到小时 “2017-03-17 02:00:00” 。
这些函数在处置惩罚日期和时间数据时非常有用,可以帮助你举行日期计算、数据提取和格式化等操作。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

天空闲话

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表