zoukankan      html  css  js  c++  java
  • sql 日期概念理解中的一些测试

    --A. 测试 datetime 精度问题
    DECLARE @t TABLE(date char(21))
    INSERT @t SELECT '1900-1-1 00:00:00.000'
    INSERT @t SELECT '1900-1-1 00:00:00.001'
    INSERT @t SELECT '1900-1-1 00:00:00.009'
    INSERT @t SELECT '1900-1-1 00:00:00.002'
    INSERT @t SELECT '1900-1-1 00:00:00.003'
    INSERT @t SELECT '1900-1-1 00:00:00.004'
    INSERT @t SELECT '1900-1-1 00:00:00.005'
    INSERT @t SELECT '1900-1-1 00:00:00.006'
    INSERT @t SELECT '1900-1-1 00:00:00.007'
    INSERT @t SELECT '1900-1-1 00:00:00.008'
    SELECT date,转换后的日期=CAST(date as datetime) FROM @t

    /*--结果

    date                  转换后的日期
    --------------------- --------------------------
    1900-1-1 00:00:00.000 1900-01-01 00:00:00.000
    1900-1-1 00:00:00.001 1900-01-01 00:00:00.000
    1900-1-1 00:00:00.009 1900-01-01 00:00:00.010
    1900-1-1 00:00:00.002 1900-01-01 00:00:00.003
    1900-1-1 00:00:00.003 1900-01-01 00:00:00.003
    1900-1-1 00:00:00.004 1900-01-01 00:00:00.003
    1900-1-1 00:00:00.005 1900-01-01 00:00:00.007
    1900-1-1 00:00:00.006 1900-01-01 00:00:00.007
    1900-1-1 00:00:00.007 1900-01-01 00:00:00.007
    1900-1-1 00:00:00.008 1900-01-01 00:00:00.007

    (所影响的行数为 10 行)
    --*/
    GO

    --B. 对于 datetime 类型的纯日期和时间的十六进制表示
    DECLARE @dt datetime

    --单纯的日期
    SET @dt='1900-1-2'
    SELECT CAST(@dt as binary(8))
    --结果: 0x0000000100000000

    --单纯的时间
    SET @dt='00:00:01'
    SELECT CAST(@dt as binary(8))
    --结果: 0x000000000000012C
    GO

    --C. 对于 smalldatetime 类型的纯日期和时间的十六进制表示
    DECLARE @dt smalldatetime

    --单纯的日期
    SET @dt='1900-1-2'
    SELECT CAST(@dt as binary(4))
    --结果: 0x00010000

    --单纯的时间
    SET @dt='00:10'
    SELECT CAST(@dt as binary(4))
    --结果: 0x0000000A
  • 相关阅读:
    C++11中右值引用和移动语义
    面试题3:自己实现单链表
    C++中指针和引用、数组之间的区别
    C++中对象模型
    C++中虚函数的动态绑定和多态性
    C++11中多线程库
    C++中友元
    C++中迭代器原理、失效和简单实现
    C++11中智能指针的原理、使用、实现
    C++中模板与泛型编程
  • 原文地址:https://www.cnblogs.com/shihao/p/2493813.html
Copyright © 2011-2022 走看看