今天遇到了一个问题。。才发现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]
这样的非连续的数据。
总觉得连毫秒这样的精度还要舍入,很奇怪的做法
|
相关推荐
sql server中使用convert来取得datetime数据类型样式(全) 日期数据格式的处理,两个示例: CONVERT(varchar(16), 时间一, 20) 结果:2007-02-01 08:02/*时间一般为getdate()函数或数据表里的字段*/ CONVERT...
### SQL Server datetime类型数据优化知识点 #### 1. 数据库优化的重要性 数据库优化是提高数据库性能的重要手段,它涉及多个方面,包括节约存储空间、提高访问效率以及加快查询速度。通过对SQL Server datetime...
SqlServer中使用Convert取得DateTime数据格式 标签: Sqlserver数据库技术
在SQL Server中,`datetime`数据类型用于存储日期和时间信息,从1753年1月1日到9999年12月31日的任何日期和时间组合都可以表示,精确到三毫秒。然而,在实际使用中,`datetime`类型存在一些需要注意的细节,这些细节...
SQL Server 和 C# 中的 DateTime 使用小结 SQL Server 中的日期函数是数据库管理系统中非常重要的一部分,它提供了多种日期函数来操作日期类型的数据。同时,在 C# 中也提供了多种方法来处理日期类型的数据。本文将...
二、如何在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 ...
SQL Server 日期相关知识 SQL Server 提供了多种方式来获取和处理日期时间数据。下面将对 SQL Server 中日期相关知识进行详细介绍。 一、获取当前日期时间 在 SQL Server 中,可以使用 GETDATE() 函数来获取当前...
首先,标题中的"sqlserver自动生成sql语句工具"指的是可以分析SQL Server数据库结构和数据,自动生成对应的SQL创建语句的软件。这种工具通常能帮助数据库管理员快速获取数据库的定义,便于备份、迁移或在其他环境中...
根据提供的文件信息,本文将详细解释SQL Server中的时间(datetime)函数及其使用方法,重点在于如何格式化时间显示。 ### 1. GetDate() `GetDate()` 函数用于获取当前系统日期和时间。这是一个非常常用的功能,在很...
在 SQL Server 中,datetime2 是一个日期时间类型,用于存储日期时间值。在 Java 中,datetime2 对应的数据类型是 java.sql.Timestamp。 datetimeoffset 在 SQL Server 中,datetimeoffset 是一个日期时间偏移类型...
在SQL Server和Oracle数据库中,对DateTime类型进行条件查询时,两者存在一些差异,这主要体现在日期范围的处理以及日期格式上。对于一个系统需要同时支持这两种数据库的情况,需要特别注意这些不同点来编写兼容的...
6. **数据类型和函数的扩展**:除了基本的SQL Server数据类型,Native Client还支持一些特定的类型,如DateTime2、Time、DateTimeOffset等,并且提供了新的函数,如DATEADD和DATEDIFF,以增强日期和时间操作的灵活性...
4. **System.Data.SqlTypes**: 包含一系列与SQL Server兼容的数据类型,如SqlDateTime、SqlInt32等,这些类型在.NET代码中可以直接与SQL Server的内置数据类型匹配。 5. **SQL Server Spatial**: 支持地理和几何...
SQL Server支持多种数据类型,如数值类型(如INT、DECIMAL)、字符串类型(如VARCHAR、NVARCHAR)、日期时间类型(如DATE、DATETIME2)以及二进制类型(如BINARY、VARBINARY)。理解这些数据类型对于创建表结构和...
例如,SQL Server中的`datetime`在SQLite中可能需要转换为`datetimeoffset`或`text`。工具需要进行这种类型转换,以确保数据能够正确存储和检索。 4. **SQL语句转换**:SQL Server的T-SQL语法与SQLite的SQL语法有...
SQL Server提供了多种时间数据类型,如`DATE`、`TIME`、`DATETIME`、`SMALLDATETIME`、`DATETIME2`和`DATETIMEOFFSET`等。其中,`DATE`存储日期,不包含时间信息;`TIME`用于存储时间;`DATETIME`和`SMALLDATETIME`...
例如,SQL Server的`varchar2`对应Oracle的`VARCHAR2`,`int`对应`NUMBER`(在无小数部分时),`datetime`对应`TIMESTAMP`。在转换过程中,需要将SQL Server的字段类型映射到Oracle对应的类型。 2. **表结构迁移**...