我试图了解我的数据库上设置的时间戳中的字节是什么意思。它们如何计算以生成更具可读性的日期?
我正在使用以下查询来获取我需要的数据:
SELECT systimestamp
,DUMP (systimestamp)
,sessiontimezone
FROM dual;
Run Code Online (Sandbox Code Playgroud)
我上面查询的输出是:
+-------------------------------------+-----------------------------------------------------------------+------------------+
| systimestamp | dump(systimestamp) | sessiontimezone |
+-------------------------------------+-----------------------------------------------------------------+------------------+
| 31-JUL-15 08.55.06.157047000 +00:00 | Typ=188 Len=20: 223,7,7,31,8,55,6,0,216,88,92,9,0,0,5,0,0,0,0,0 | Europe/Bucharest |
+-------------------------------------+-----------------------------------------------------------------+------------------+
Run Code Online (Sandbox Code Playgroud)
我在网上找到了一些资源来解释字节的含义(这里),但规则在我的场景中不匹配。
例如:223 不是世纪 + 100 等。
我尝试这样做的原因是因为我在比较timestamp(3)
列中的值时遇到了一个问题systimestamp
,我正在尝试编写一个脚本来验证我的问题/解决方案是否与此处解释的相同。
任何帮助表示赞赏。
当我尝试代码时,我正在使用 oracle apex
SELECT TO_CHAR (SYSTIMESTAMP) "NOW" FROM DUAL
Run Code Online (Sandbox Code Playgroud)
结果总是晚了5个小时。任何人都可以帮我解决这个问题吗?
我有一个表的varchar2数据类型,如下所示
create table t11 (aa varchar2(100),bb varchar2(100));
Run Code Online (Sandbox Code Playgroud)
现在,如果我尝试插入systimestamp
上面,则会插入值:
insert into t11 values (systimestamp,systimestamp);
commit;
Run Code Online (Sandbox Code Playgroud)
问题是Oracle允许这种转换的原因.
我正在使用Oracle 11g.
即
我计划将24小时分成24个部分(每个部分1小时):00:00:00 AM到01:29:59 AM作为第1部分,依此类推
当前systimestamp = "02-NOV-15 06.13.49.000000000 PM"
我想获得可以返回从下午5:30:00到下午6:29:59的时间段的SQL,这是systimestamp当前所属的时间段.
我不知道如何将此SQL编写为初学者,感谢您的任何输入.
oracle ×4
systimestamp ×4
oracle11g ×2
localtime ×1
oracle-apex ×1
sql ×1
time-format ×1
varchar2 ×1