数据库中,存储日期+时间(如:2010-10-22 8:00:00 )被转换成数字类型number(如:972172800)
这两者之间如何互相转换?
julian日期没有包括时间。

解决方案 »

  1.   

    如果你需要用整数表示包括时间的,你可以放大这个数,乘以24即可用整数表示小时,再乘以60即可表示分钟。你还可以使用一个靠近的日期作为序数,避免这个值很大。比如使用 2000年1月1日。
    很明显,你可以找到一个换算公式来从系统标准的序数换算成你的数字。
    比如 myserial = Convert.ToInt32((standardserial - 36525) * 24 * 60)
      

  2.   


    直接转成20101022080000不行吗?可是numeric型。一般这样的写法都是为了查询或比较时应用的!不知道是否还有其他用处?
      

  3.   

    20101022080000 缺点,数字过长,而且考虑进制,用时间序数相减,自然就是时间差,相加就是某个时间加上一个时间。而 20101022080000 - 200912010000 减出来没有意义。我已经介绍了算法,取决于你选定的基数。.NET 的 DateTime 可能是用 1900.1.1 作为基准的。
    你可以用 Convert.ToDouble() 去转化。