原文:SQL SERVER 中的smalldatetime和datetime区别

smalldatetime不能到秒. 
不過它占的空間小.(4位) 
datetime(8位) 
而且兩者的時間範圍不一樣.

datetime占8字节,精度3.33毫秒,时间从1753.1.1到9999.12.31 
smalldatetime占4字节,精度1分钟,时间从1900.1.1到2079.6.6
    
datetime 

Date and time data from January 1, 1753, to December 31, 9999, with an accuracy of three-hundredths of a second, or 3.33 milliseconds. 

smalldatetime 

Date and time data from January 1, 1900, through June 6, 2079, with an accuracy of one minute.

碰上了這件事,才學到教訓,一直以為smalldatetime和datetime的差別只是在於時間範圍:
smalldatetime的有效時間範圍1900/1/1~2079/6/6
datetime的有效時間範圍1753/1/1~9999/12/31
所以我判斷如果該值不用到太遠的日期範圍,就會使用smalldatetime。
但我忽略了更關鍵的差別,那就是smalldatetime只精準到分,而datetime則可精準到3.33毫秒。
因此,當我怎麼存,秒都是00後,才發現原來是smalldatetime惹的禍,待我將資料型別改成datetime後,秒的部份就可以正常儲存了。

*****************************************************************************************
SQL Server中,smalldatetime只能精确到分钟,而datatime可以精确到3%秒(3.33毫秒)。

smalldatetime占用4个字节,前2个字节存储base date(1900年1月1日)之后的天数。后2个字节存储午夜后的分钟数

datetime占用8个字节,前4个字节存储base date(即1900年1月1日)之前之后的天数,后4个字节存储午夜后的毫秒数

由于datetime的精度是3%秒,这就涉及到小数,毫秒之前可以是冒号,也可以是小数点。使用冒号时表示的意义同时分秒间隔,11:11:11:21表示021毫秒,前面的0省略,而小数点表示的意义同数学上的小数点,如11:11:11.21表示210毫秒,省略的是后面的0。

SQL SERVER 中的smalldatetime和datetime区别的更多相关文章

  1. SQL Server 中 EXEC 与 SP_EXECUTESQL 的区别

    SQL Server 中 EXEC 与 SP_EXECUTESQL 的区别 MSSQL为我们提供了两种动态执行SQL语句的命令,分别是 EXEC 和 SP_EXECUTESQL ,我们先来看一下两种方 ...

  2. SQL Server中SCAN 和SEEK的区别

    SQL Server中SCAN 和SEEK的区别 SQL SERVER使用扫描(scan)和查找(seek)这两种算法从数据表和索引中读取数据.这两种算法构成了查询的基础,几乎无处不在.Scan会扫描 ...

  3. [转]SQL SERVER中openrowset与opendatasource的区别

    本文转自:http://blog.sina.com.cn/s/blog_6399df820102vyy8.html SQL SERVER中openrowset与opendatasource的区别: o ...

  4. SQL Server中char与varchar数据类型区别

    在SQL Server中char类型的长度是不可变的,而varchar的长度是可变的 . 存入数据时: 如果数据类型为char时,当定义一个字段固定长度时,如果存进去数据长度小于char的长度,那么存 ...

  5. SQL Server中Text和varchar(max) 区别

    SQL Server 2005之后版本:请使用 varchar(max).nvarchar(max) 和 varbinary(max) 数据类型,而不要使用 text.ntext 和 image 数据 ...

  6. SQL Server中存储过程与函数的区别

    本质上没区别.只是函数有如:只能返回一个变量的限制.而存储过程可以返回多个.而函数是可以嵌入在sql中使用的,可以在select中调用,而存储过程不行.执行的本质都一样. 函数限制比较多,比如不能用临 ...

  7. SQL Server中DELETE和TRUNCATE的区别

    ​DELETE和TRUNCATE语句之间的区别是求职面试中最常见的问题之一.这两条语句都可以从表中删除数据.然而,也有不同之处. 本文将重点讨论这些差异,并通过实例加以说明. TRUNCATE DEL ...

  8. Sql Server中charindex、patindex的区别

    SQL代码如下: select charindex('1,','121,1,1234') select patindex('%1,%','121,1,1234') ','121,1,1234') se ...

  9. sql server中Set与select的区别

    Set与select的区别 Set select 同时多个变量赋值 不支持 支持 表达式返回多个值时 出错 将返回的最后一个值赋给变量 表达式未返回值 变量被null赋值 变量保持原始值

随机推荐

  1. HGOI 20191105 题解

    Problem A Joker 老虎和蒜头是好朋友. 夏天过去了,凉爽的秋天来临,老虎和蒜头又有了新的娱乐项目.老虎有一个远房表亲是西伯利亚虎,那里流行着一个纸牌游戏:两位玩家参与游戏,道具是一副54 ...

  2. Linux操作大全

    系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS ...

  3. Git 提交代码和更新代码

    首先,操作之前一定要看清分支!! 其次,提交代码之前一定要先更新代码!! git branch        -----查看当前分支 git pull             -----更新代码到本地 ...

  4. Neo4j 简介 2019

    Neo4j是一个世界领先的开源图形数据库,由 Java 编写.图形数据库也就意味着它的数据并非保存在表或集合中,而是保存为节点以及节点之间的关系. Neo4j 的数据由下面几部分构成: 节点边属性Ne ...

  5. 转:Jmeter文件上传、下载

    一.上传/下载的过程.        上传的过程就是你把你本地的文件,扔到服务器上的这么一个过程.        下载呢,就是把服务器上的文件拿过来,然后存到你本地的这么一个过程.        总结 ...

  6. Ant环境搭建

    1.上传安装包到linux服务器 2.解压缩 tar zxvf  apache-ant-1.10.1-bin.tar.gz 3.修改环境变量 vim /etc/profile 添加以下内容 expor ...

  7. in和exists的区别

    表展示 首先,查询中涉及到的两个表,一个user和一个order表,具体表的内容如下: user表: order表: in 确定给定的值是否与子查询或列表中的值相匹配.in在查询的时候,首先查询子查询 ...

  8. python3连接redis数据库

    1.python想操作redis,需要安装第三方模块(我是在windows下进行操作的) pip install redis 2.连接数据库 #coding:utf-8 import redis r  ...

  9. 【软件工程】Alpha冲刺 (5/6)

    链接部分 队名:女生都队 组长博客: 博客链接 作业博客:博客链接 小组内容 恩泽(组长) 过去两天完成了哪些任务 描述 学习调用中国天气网API,接近实现天气推送功能 对天气推送的形式进行讨论及重确 ...

  10. PHPStorm2017去掉函数参数提示

    今天升级到 PHPStorm 2017.1 发现增加了好些新功能, 有个默认开启的参数名和类型提示功能, 虽然功能挺强大的, 不过我用不着, 还是关掉的好, 有同样需求的同学可以看看 例子比较特殊这么 ...