`
gzj316
  • 浏览: 34757 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SqlServer DateTime

 
阅读更多
诡异的SQLServer的datetime类型
2010-11-05 17:33
今天遇到了一个问题。。才发现SQLServer的datetime类型真是诡异。。。
具体就是,要把日期时间插入数据库,每秒钟若干条,日期时间的类型是datetime,上面有唯一索引。

异常出来了:在插入的时候不规则的出现唯一索引冲突的异常。检查了Java部分的代码,没有问题,年月日时分秒是一样的,但是毫秒肯定不一样。后来考虑到可能是SQLServer的问题,
就写了短程序测试了一下,果然:
SQLServer在保存毫秒的时候有"舍入"的现象。
比如保存的是2010-10-01 10:00:00.002,那么这个可能会被舍入到2010-10-01 10:00:00.000
然后就唯一索引冲突了。
后来从MSDN的文档上也确认了这个说法。

最后自己写了段程序,从 [日期.时间.000] 插入到[日期.时间.999],发现大概66%的数据丢掉了(唯一索引冲突),数据库里面只保存了

[日期.时间.000]
[日期.时间.003]
[日期.时间.006]
.....
[日期.时间.999]


这样的非连续的数据。

总觉得连毫秒这样的精度还要舍入,很奇怪的做法
分享到:
评论

相关推荐

    sqlserver中datetime属性巧用

    sql server中使用convert来取得datetime数据类型样式(全) 日期数据格式的处理,两个示例: CONVERT(varchar(16), 时间一, 20) 结果:2007-02-01 08:02/*时间一般为getdate()函数或数据表里的字段*/ CONVERT...

    如何对SQL Server datetime类型数据优化.pdf

    ### SQL Server datetime类型数据优化知识点 #### 1. 数据库优化的重要性 数据库优化是提高数据库性能的重要手段,它涉及多个方面,包括节约存储空间、提高访问效率以及加快查询速度。通过对SQL Server datetime...

    SqlServer中使用Convert取得DateTime数据格式

    SqlServer中使用Convert取得DateTime数据格式 标签: Sqlserver数据库技术

    Sql Server datetime问题

    在SQL Server中,`datetime`数据类型用于存储日期和时间信息,从1753年1月1日到9999年12月31日的任何日期和时间组合都可以表示,精确到三毫秒。然而,在实际使用中,`datetime`类型存在一些需要注意的细节,这些细节...

    SQL server 和C#中的DateTime使用小结

    SQL Server 和 C# 中的 DateTime 使用小结 SQL Server 中的日期函数是数据库管理系统中非常重要的一部分,它提供了多种日期函数来操作日期类型的数据。同时,在 C# 中也提供了多种方法来处理日期类型的数据。本文将...

    sqlserver 中时间为空的处理小结

    二、如何在sql语句中判断为NULL的时间字段 假设表为:TestTable SN DateTime1 DateTime2 1 2011-10-24 2011-10-25 2 NULL 2011-10-26 3 2011-10-25 NULL 用case进行查询,若写成: select (case DateTime1 ...

    sqlserver日期相关知识.doc

    SQL Server 日期相关知识 SQL Server 提供了多种方式来获取和处理日期时间数据。下面将对 SQL Server 中日期相关知识进行详细介绍。 一、获取当前日期时间 在 SQL Server 中,可以使用 GETDATE() 函数来获取当前...

    sql sever时间(datetime)函数

    根据提供的文件信息,本文将详细解释SQL Server中的时间(datetime)函数及其使用方法,重点在于如何格式化时间显示。 ### 1. GetDate() `GetDate()` 函数用于获取当前系统日期和时间。这是一个非常常用的功能,在很...

    sqlserver自动生成sql语句工具sqlserver转oracle

    首先,标题中的"sqlserver自动生成sql语句工具"指的是可以分析SQL Server数据库结构和数据,自动生成对应的SQL创建语句的软件。这种工具通常能帮助数据库管理员快速获取数据库的定义,便于备份、迁移或在其他环境中...

    sqlserver和oracle中对datetime进行条件查询的一点区别小结

    在SQL Server和Oracle数据库中,对DateTime类型进行条件查询时,两者存在一些差异,这主要体现在日期范围的处理以及日期格式上。对于一个系统需要同时支持这两种数据库的情况,需要特别注意这些不同点来编写兼容的...

    sqlserver数据库类型对应Java中的数据类型

    在 SQL Server 中,datetime2 是一个日期时间类型,用于存储日期时间值。在 Java 中,datetime2 对应的数据类型是 java.sql.Timestamp。 datetimeoffset 在 SQL Server 中,datetimeoffset 是一个日期时间偏移类型...

    Win10可用的Microsoft SQL Server 2008 Native Client

    6. **数据类型和函数的扩展**:除了基本的SQL Server数据类型,Native Client还支持一些特定的类型,如DateTime2、Time、DateTimeOffset等,并且提供了新的函数,如DATEADD和DATEDIFF,以增强日期和时间操作的灵活性...

    Microsoft sql server system clr types 2012

    4. **System.Data.SqlTypes**: 包含一系列与SQL Server兼容的数据类型,如SqlDateTime、SqlInt32等,这些类型在.NET代码中可以直接与SQL Server的内置数据类型匹配。 5. **SQL Server Spatial**: 支持地理和几何...

    SQL Server宝典SQL Server语句大全

    SQL Server支持多种数据类型,如数值类型(如INT、DECIMAL)、字符串类型(如VARCHAR、NVARCHAR)、日期时间类型(如DATE、DATETIME2)以及二进制类型(如BINARY、VARBINARY)。理解这些数据类型对于创建表结构和...

    SQL Server数据导入SQLite工具

    例如,SQL Server中的`datetime`在SQLite中可能需要转换为`datetimeoffset`或`text`。工具需要进行这种类型转换,以确保数据能够正确存储和检索。 4. **SQL语句转换**:SQL Server的T-SQL语法与SQLite的SQL语法有...

    SQLServer时间处理

    SQL Server提供了多种时间数据类型,如`DATE`、`TIME`、`DATETIME`、`SMALLDATETIME`、`DATETIME2`和`DATETIMEOFFSET`等。其中,`DATE`存储日期,不包含时间信息;`TIME`用于存储时间;`DATETIME`和`SMALLDATETIME`...

    SqlServer表结构转oracle表结构

    例如,SQL Server的`varchar2`对应Oracle的`VARCHAR2`,`int`对应`NUMBER`(在无小数部分时),`datetime`对应`TIMESTAMP`。在转换过程中,需要将SQL Server的字段类型映射到Oracle对应的类型。 2. **表结构迁移**...

Global site tag (gtag.js) - Google Analytics