小编ive*_*nxu的帖子

oracle 如何在内部存储带时区的时间戳

基于 Oracle 文档,它在内部以数字形式存储时间戳和时区的不同部分。我读了这篇文章http://www.orafaq.com/wiki/Timestamp ,它解释了时间戳内部格式的算法。所以我做了一个简单的测试来验证它。

 SQL> create table tz_test(id number, tz timestamp with time zone);

 Table created.

 SQL> insert into tz_test values(1, timestamp '1999-10-29 21:00:00 -7:00');

 1 row created.

 SQL> insert into tz_test values(2, timestamp '1999-10-29 21:00:00 US/Pacific');

 1 row created.

 SQL> select id, dump(tz, 10) from tz_test where tz=timestamp '1999-10-29 21:00:00 -7:00';

    ID     DUMP(TZ,10)
 --------------------------------------------------------------------------------

     1     Typ=181 Len=13: 119,199,10,30,5,1,1,0,0,0,0,13,60

     2     Typ=181 Len=13: 119,199,10,30,5,1,1,0,0,0,0,137,156
Run Code Online (Sandbox Code Playgroud)

orafaq 中的文章谈到了 oracle 如何存储时区偏移量,我的第一行测试证明了这一点。但是没有关于如何存储时区文字的内容。所以我很想知道它。我也想知道 oracle 在内部如何评估时间戳 '1999-10-29 21:00:00 -7:00' 和时间戳 '1999-10-29 21:00:00 US/Pacific' 是相同的。

oracle timestamp-with-timezone

5
推荐指数
1
解决办法
1878
查看次数

是否有任何令人信服的理由不能在C#中使用等于运算符(==)作为默认值(T)

泛型类型的相等运算符和默认值是C#中的两个便利功能.但我们无法轻易地无缝使用它们.例如,我希望以下代码可以编译,

public static bool EqualsDefault<T>(T subject){
        return subject == default(T);
    }
Run Code Online (Sandbox Code Playgroud)

不幸的是,它会失败,尽管有一个反直觉的选择,

public static bool EqualsDefault<T>(T subject){
        return object.Equals(subject, default(T));
    }
Run Code Online (Sandbox Code Playgroud)

所以我的问题是为什么C#不允许第一个代码片段?

c# generics

2
推荐指数
1
解决办法
90
查看次数

标签 统计

c# ×1

generics ×1

oracle ×1

timestamp-with-timezone ×1