【问题标题】:How to add oracle TRUNC(SYSDATE-100,'Q') to MySQL如何将 oracle TRUNC(SYSDATE-100,'Q') 添加到 MySQL
【发布时间】:2020-02-16 07:27:09
【问题描述】:

我已经安装了 MySQL,我有一个 oracle 脚本,我创建了模式和表,并在 oracle 中坚持使用 trunc 和 Quarter,并希望它们插入 MySQL。

插入mysql时如何使用trunc和q?

INSERT INTO ASSIGNMENT (ASSIGNMENT_ID, CONSULTANT_ID,CLIENT_ID,START_DATE,END_DATE,PAY,COMMENTS) 
  VALUES (1, 2, 1, date_format(quarter(SYSDATE()-100),'%d-%b-%Y'),date_format(quarter(SYSDATE()-100),'%d-%b-%Y')+31,500, null);

date_format(quarter(SYSDATE()-100),'%d-%b-%Y'),date_format(quarter(SYSDATE()-100),'%d-%b-%Y')+31,500

错误代码:1292。不正确的日期时间值:“4”错误代码:1292。 日期值不正确:第 1 行的列“start_date”的“Q”错误代码: 1292. 不正确的日期值:第 1 行的列 'start_date' 的 'Q'

【问题讨论】:

  • 选择季度(SYSDate()-100);返回 4,因此没有机会像这样将其形成为具有 '%d-%b-%Y' 的日期,

标签: mysql oracle oracle11g datetime-format


【解决方案1】:

你可以使用:

set @former_day = date_add( sysdate(), interval -100 day );

select
date_format(@former_day ,'%Y-01-01') + interval quarter(@former_day)-1 quarter 
as new_date

生成你想要的。

  • 获取当前年份的开始前 100 天:

    date_format(@former_day ,'%Y-01-01')

  • 将季度数添加到季度的开头为 100 前几天:

    + interval quarter(@former_day)-1 quarter

Demo

【讨论】:

    猜你喜欢
    • 2012-08-17
    • 1970-01-01
    • 1970-01-01
    • 2021-01-16
    • 2010-12-15
    • 1970-01-01
    • 2013-04-08
    • 2018-06-02
    • 2016-10-27
    相关资源
    最近更新 更多