sqlserver datetime与smalldateTime

sqlserver datetime与smalldateTimedatetime 从1753年1月1日到9999年12月31日的日期和时间数据,精确度为百分之三秒(等于3.33毫秒或0.00333秒)。–A.测试datetime精度问题DECLARE@tTABLE(datechar(21))INSERT@tSELECT’1900-1-100:00:00.000’INSERT@t

大家好,又见面了,我是你们的朋友全栈君。datetime 

从 1753 年 1 月 1 日到 9999 年 12 月 31 日的日期和时间数据,精确度为百分之三秒(等于 3.33 毫秒或 0.00333 秒)。

–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

smalldateTime

从 1900 年 1 月 1 日到 2079 年 6 月 6 日的日期和时间数据精确到分钟。29.998 秒或更低的 smalldatetime 值向下舍入为最接近的分钟,29.999 秒或更高的 smalldatetime 值向上舍入为最接近的分钟。

–returns time as 12:35

SELECT CAST(‘2000-05-08 12:35:29.998’ AS smalldatetime)

GO

–returns time as 12:36

SELECT CAST(‘2000-05-08 12:35:29.999’ AS smalldatetime)

GO

注意——-

datetime用两个 4字节的整数内部存储datetime数据类型的值。第一个字节存储basedate(1900年1月1日)之前或者之后的天数。基础日期是系统参考日期。不允许早于1753年1月1日的datetime的值。另外一个4字节存储以午夜后毫秒数所代表的每天的时间。

smalldatetime 数据类型存储日期和每天的时间,但精确度低于datetime.sqlserver将smalldatetime的值存储为两个2字节的整数。第一个2字节存储1900年1月1日后的天数。另外一个2字节存储午夜后的分钟数。日期范围从1900年1月1日到2079年6月6日,精确到分钟。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/144432.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 范式的数据库具体解释

    范式的数据库具体解释

    2022年1月10日
    38
  • 文本分类算法研究与实现

    文本分类算法研究与实现总结了文本分类中的常用算法,包括8种传统算法:k临近、决策树、多层感知器、朴素贝叶斯(包括伯努利贝叶斯、高斯贝叶斯和多项式贝叶斯)、逻辑回归和支持向量机概念及其实现代码

    2022年5月22日
    27
  • 使用FileStream读写文件[通俗易懂]

    使用FileStream读写文件[通俗易懂]staticvoidMain(string[]args)       {           //创建文件           using(FileStreamfsWrite=newFileStream(@”C:\Users\pqx\Desktop\new.txt”,FileMode.OpenOrCreate,FileAccess.Write))     

    2022年7月24日
    8
  • Apache安装路径查询「建议收藏」

    Apache安装路径查询「建议收藏」主要看是用什么方式来安装的1tarball等安装whereishttpd  查看httpd的位置或者用whichhttpd2rpm包形式rpm-aq|grephttp  //查看是否安装了apache包,若已安装,则会打印出包名rpm-qi输入获取到的包名 //查看该apache包信息rpm-ql输入包名         //查看apache包中所有文件的安装位置…

    2022年9月21日
    0
  • tracert命令的原理是什么_tracert命令的原理

    tracert命令的原理是什么_tracert命令的原理1. Tracert 命令的原理与作用Tracert命令诊断实用程序通过向目标计算机发送具有不同生存时间的ICMP数据包,来确定至目标计算机的路由,也就是说用来跟踪一个消息从一台计算机到另一台计算机所走的路径。该诊断实用程序将包含不同生存时间 (TTL

    2022年9月24日
    0
  • java高并发 pdf_Java高并发编程详解 PDF 下载

    java高并发 pdf_Java高并发编程详解 PDF 下载推荐序一推荐序二推荐序三推荐序四前言第一部分多线程基础第1章快速认识线程1.1线程的介绍1.2快速创建并启动一个线程1.3线程的生命周期详解1.4线程的start方法剖析:模板设计模式在Thread中的应用1.5Runnable接口的引入以及策略模式在Thread中的使用1.6本章总结第2章深入理解Thread构造函数2.1线程的命名2.2线程的父子关系2.3Thread与…

    2022年5月12日
    44

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号