RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1093694
Accepted
Gipnomanul
Gipnomanul
Asked:2020-03-12 15:04:27 +0000 UTC2020-03-12 15:04:27 +0000 UTC 2020-03-12 15:04:27 +0000 UTC

根据时间更改单元格中的日期

  • 772

继续这个问题: Converting a string with a number of given length to a time value

该表包含 6 列:

  • REG_ID- 标识符
  • DDATE- 活动日期
  • DTIME- 4位数字格式的事件时间
  • DTIMEUTC- 4 位数字格式的 UTC 事件时间
  • DT_LOCAL- 转换(以正常形式)事件的日期和时间
  • DT_UTC- 以 UTC 转换(以正常形式)事件的日期和时间

输入前 4 列中的数据。在最后两列中,使用我在上一个问题中提示的查询输入数据:

UPDATE ATEST
SET DT_LOCAL = "DDATE" || ' ' || SUBSTR(DTIME, 1, 2)|| ':' ||substr(DTIME, 3, 2)
WHERE REG_ID > 0

UPDATE ATEST
SET DT_UTC = "DDATE" || ' ' || SUBSTR(DTIMEUTC, 1, 2)|| ':' ||substr(DTIMEUTC, 3, 2)
WHERE REG_ID > 0

在此处输入图像描述

最后,一个问题。从查询和表格中可以看出,有时 UTC 时间会落在第二天,因此日期应该会改变。也就是说,根据示例,表中带有 UTC 时间的第二行应该已经是 01/03/2010,而不是 01/02/2010。如果与 DTIME 相比,DTIMEUTC 已经移到下一天,那么应该执行什么 SQL 查询以使 DT_UTC 字符串中的日期递增?
在此示例中,DT_UTC 中的数据并不完全正确,例如,第 1 行和第 2 行应包含第一个数字,因为第二个数字尚未到达 UTC。时间在 12 小时内变化。

我正在附加一个查询来创建一个表:

create table ATEST
(
  reg_id   NUMBER(19) not null,
  ddate    VARCHAR2(255),
  dtime    VARCHAR2(255),
  dt_local VARCHAR2(255),
  dt_utc   VARCHAR2(255),
  dtimeutc VARCHAR2(255)
)

insert into ATEST (reg_id, ddate, dtime, dt_local, dt_utc, dtimeutc)
values (1, '02.01.2010', '0125', '02.01.2010 01:25', '02.01.2010 22:25', '2225');
insert into ATEST (reg_id, ddate, dtime, dt_local, dt_utc, dtimeutc)
values (2, '02.01.2010', '0328', '02.01.2010 03:28', '02.01.2010 20:28', '2028');
insert into ATEST (reg_id, ddate, dtime, dt_local, dt_utc, dtimeutc)
values (3, '03.01.2010', '0645', '03.01.2010 06:45', '03.01.2010 02:45', '0245');
insert into ATEST (reg_id, ddate, dtime, dt_local, dt_utc, dtimeutc)
values (4, '03.01.2010', '1250', '03.01.2010 12:50', '03.01.2010 09:50', '0950');
insert into ATEST (reg_id, ddate, dtime, dt_local, dt_utc, dtimeutc)
values (5, '03.01.2010', '1845', '03.01.2010 18:45', '03.01.2010 15:45', '1545');
commit;
sql
  • 1 1 个回答
  • 10 Views

1 个回答

  • Voted
  1. Best Answer
    Mike
    2020-03-12T19:25:00Z2020-03-12T19:25:00Z

    我们需要计算两次之间的小时差。如果超过 12 小时,请在一天中的其余时间进行调整。然后从本地日期时间中减去以小时为单位的结果值,从而获得 UTC 日期时间。

    update atest
       set dt_utc = 
           to_char(
               to_date(dt_local, 'DD.MM.YYYY HH24:MI') - 1 / 24 *
                case when abs((dtimeutc-dtime)/100) > 12
                     then (24 - abs((dtimeutc-dtime)/100)) * sign(dtimeutc-dtime)
                     else -(dtimeutc-dtime)/100
                end
           , 'DD.MM.YYYY HH24:MI')
    

    在sqlfiddle.com计算新日期的示例

    • 0

相关问题

  • phpMyAdmin 中的错误 #1064 SQL 查询

  • Qt:包含变量的数据库查询

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    如何从列表中打印最大元素(str 类型)的长度?

    • 2 个回答
  • Marko Smith

    如何在 PyQT5 中清除 QFrame 的内容

    • 1 个回答
  • Marko Smith

    如何将具有特定字符的字符串拆分为两个不同的列表?

    • 2 个回答
  • Marko Smith

    导航栏活动元素

    • 1 个回答
  • Marko Smith

    是否可以将文本放入数组中?[关闭]

    • 1 个回答
  • Marko Smith

    如何一次用多个分隔符拆分字符串?

    • 1 个回答
  • Marko Smith

    如何通过 ClassPath 创建 InputStream?

    • 2 个回答
  • Marko Smith

    在一个查询中连接多个表

    • 1 个回答
  • Marko Smith

    对列表列表中的所有值求和

    • 3 个回答
  • Marko Smith

    如何对齐 string.Format 中的列?

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5