惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

罗磊的独立博客
小众软件
小众软件
The Cloudflare Blog
博客园 - 【当耐特】
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
酷 壳 – CoolShell
酷 壳 – CoolShell
WordPress大学
WordPress大学
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
Visual Studio Blog
量子位
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
美团技术团队
S
SegmentFault 最新的问题
宝玉的分享
宝玉的分享
博客园 - 叶小钗
月光博客
月光博客
Apple Machine Learning Research
Apple Machine Learning Research
T
Tailwind CSS Blog
博客园 - 聂微东
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
J
Java Code Geeks
Y
Y Combinator Blog
D
Docker
Microsoft Azure Blog
Microsoft Azure Blog

博客园 - Rainbow.ding

SSRS 表达式 用户中心 - 博客园 DataTable的Distinct SQL Server 2005 - Default Trace (默认跟踪) 数据库设计范式的理解(转) 设置SQL2008报表匿名访问的方法 sqlserver 日期字段转换格式 数据库镜像 Sql Server格式化日期(转) 彼尔盖茨的十句话,绝对让你改变一生! 必须掌握的8个cmd 命令(转) 海量数据处理 (转) 软件开发者面试百问(转) 薪资谈判技巧 综述ASP.NET下的AJAX模式 水晶报表注册码 ASP.NET中传参一种简单加密与解密QueryString的方法 BI的相关名词 在外企必会的10个英文单词:
SQL SERVER 中的smalldatetime和datetime区别
Rainbow.ding · 2011-01-04 · via 博客园 - Rainbow.ding

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。