SQL Server比较Date和Datetime数据时一个有趣的问题
2011-12-09 17:45
465 查看
看到有人贴出这样的问题:/article/5908638.html
感觉SQL Server在比较Date和Datetime这两种类型的时候,是将Date类型强制转换成了'2011-11-04 00:00:00.000'的Datetime进行比较,因此Date类型的'2011-11-04'和Date类型的'2011-11-04 23:59:59'一样大,但是Date类型的'2011-11-04'比Datetime类型的'2011-11-04 23:59:59'小
验证代码如下:
个人觉得取时间段还是避免使用'2011-11-04 23:59:59'这样的时间,毕竟数据的时间还存在位于'2011-11-04 23:59:59.001'和'2011-11-04 23:59:59.997'之间的可能性。另外,各系统间和输入输出参数的数据类型尽量都保持一致。
感觉SQL Server在比较Date和Datetime这两种类型的时候,是将Date类型强制转换成了'2011-11-04 00:00:00.000'的Datetime进行比较,因此Date类型的'2011-11-04'和Date类型的'2011-11-04 23:59:59'一样大,但是Date类型的'2011-11-04'比Datetime类型的'2011-11-04 23:59:59'小
验证代码如下:
DECLARE @EndTime datetime SET @EndTime='2011-11-04 23:59:59' --SET @EndTime='2011-11-05' DECLARE @CreateTime DATE SET @CreateTime='2011-11-04' IF @CreateTime<@EndTime PRINT '@CreateTime<@EndTime' IF @CreateTime<CONVERT(DATE,@EndTime) PRINT '@CreateTime<CONVERT(DATE,@EndTime)' ELSE IF @CreateTime=CONVERT(DATE,@EndTime) PRINT '@CreateTime=CONVERT(DATE,@EndTime)'
个人觉得取时间段还是避免使用'2011-11-04 23:59:59'这样的时间,毕竟数据的时间还存在位于'2011-11-04 23:59:59.001'和'2011-11-04 23:59:59.997'之间的可能性。另外,各系统间和输入输出参数的数据类型尽量都保持一致。
相关文章推荐
- 一个有趣的SQL Server 层级汇总数据问题
- 从 varchar 数据类型到 datetime 数据类型的转换产生一个超出范围的值/Conversion failed when converting date and/or time from c
- 向数据库中插入一个DateTime类型的数据到一个Date类型的字段中,需要转换类型。TO_DATE('{0}','YYYY-MM-DD'))
- 数据库中关于datetime、date 、time数据类型比较,及插入日期时间数据格式
- 把一个用sql server 2005内置加密方法加密数据的DB从一台电脑备份后,还原到另外一台电脑上,出现的问题的处理办法
- 一个有趣的 int 与 float 数据类型的小问题
- 当web应用中面临大数据量同时并发量比较大的情况下性能是一个尤为重要的问题,面对性能优化我们应从何做起,在哪些方面做优化呢?
- 建站或者网站搬家换空间的时候,企业站长最关心的一个问题是该如何选择网站空间,而这一问题对于一些擅长的站长来说非常小意思,但对于部分企业站长来说是一个比较头疼的问题。根据不完整数据显示,很多企业站长因为
- 腾讯云图片鉴黄集成到C# SQL Server 怎么在分页获取数据的同时获取到总记录数 sqlserver 操作数据表语句模板 .NET MVC后台发送post请求 百度api查询多个地址的经纬度的问题 try{}里有一个 return 语句,那么紧跟在这个 try 后的 finally {}里的 code 会 不会被执行,什么时候被执行,在 return 前还是后? js获取某个日期
- 一个多对多关系表的数据分页显示问题-sp_cursoropen 比较 临时表方式
- Entity Framework 更新数据库 datetime 类型的问题 从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值。
- Java字符串一个比较有趣的问题
- 一个关于Java数据类型的有趣问题
- SQL SERVER 从Excel导入数据时不同语言字符集的比较问题
- 关于数据库Date类型和DateTime类型比较问题
- Linux下的一个简单汇编程序, .long声明数据的长度问题!
- SQL Server 中如何用一个表的数据更新另一个表中的数据
- 关于数据库的数据是String时与前台传进的值比较的问题
- 欢迎参与讨论一个分布式数据同步的问题!
- 使用的 SQL Server 版本不支持数据类型“date”的解决方法