SQLServer The datediff function resulted in an overflow
开发同事有一个脚本报错,很简单,简写如下:
SELECT COUNT(*)
FROM Logs t1 with(nolock)
WHERE DATEDIFF(s, '2016-08-18 17:06:35', t1.insertTime) < 0
执行后出错!
Msg 535, Level 16, State 0, Line 1
The datediff function resulted in an overflow.
The number of dateparts separating two date/time instances is too large.
Try to use datediff with a less precise datepart.
datediff 函数计算溢出!难道 datediff 计算出来的的秒数超出了范围?
果然,官方文档如下:(DATEDIFF (Transact-SQL))
如果返回值超出 int 的范围(-2,147,483,648 到 +2,147,483,647),则会返回一个错误。 对于 millisecond,startdate 与enddate 之间的最大差值为 24 天 20 小时 31 分钟 23.647 秒。 对于 second,最大差值为 68 年。
查看数据库,竟然有7行时间为: 2099-08-10 11:33:37.367 ,这样转换肯定出错了,错误如上一样。可以试试。
select DATEDIFF(s, '2000-01-01 00:00:00', '2068-01-19 04:00:00')
select DATEDIFF(s, '2000-01-01 00:00:00', '2068-01-19 03:00:00') --2147482800
相差秒数为 2147482800,为 整型 int 的范围内。
也可以看看 datediff 返回的类型是什么:整型
SELECT SQL_VARIANT_PROPERTY(DATEDIFF(s, '2000-01-01 00:00:00', '2068-01-19 03:00:00'),'BaseType')
所以,数据库存在了日期较大的值,这几行日期字段原本也是错误的数据,应该把日期改掉。还有就是语句写法也有问题,不应该这么写,应改成下面的写法更规范,否则即使有索引也不能使用!
SELECT COUNT(*)
FROM Logs t1 with(nolock)
WHERE t1.insertTime < '2016-08-18 17:06:35'
SQLServer The datediff function resulted in an overflow相关推荐
- C#在Oralce环境执行查询时报Arithmetic operation resulted in an overflow
问题描述:C#代码在Oralce环境执行分组求和的Sql时报错,提示"Arithmetic operation resulted in an overflow",即算术运算导致溢出 ...
- Pgsql实现SQLServer的datediff函数
SqlSever的datediff函数,在Pgsql可能往往想到用date_part来实现,但这是有差异的,如: SQLServer:select datediff(d,'2020-02-24 20: ...
- sqlserver根据DATEDIFF()函数计算年龄、月龄、天数
首先我们先来了解一下DATEDIFF()函数 DATEDIFF() 函数返回两个日期之间的时间. 语法:DATEDIFF(datepart,startdate,enddate) 比如我们想要计算年龄 ...
- mysql datediff函数怎么用_SQL中datediff函数怎么用?(代码详解)
在SQL Server中,可以使用T-SQL DATEDIFF()函数返回两个日期之间的差异.它适用于任何可以解析为time.date.smalldatetime.datetime.datetime2 ...
- php环境搭建sqlserver,ThinkPHP5.0/5.1对接SQLServer数据库(宝塔环境)
SQLServer实际上是mssql,想要使用thinkphp的Db对象操作数据库前必须要在服务器上安装对应的扩展. 宝塔面板的PHP安装路径为/www/server/php/ 且支持多个PHP版本共 ...
- mysql sql语句 datediff_MySQL数据库之MySQL DATEDIFF 函数
本文主要向大家介绍了MySQL数据库之MySQL DATEDIFF 函数 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. Summary: in this tutorial, y ...
- 什么是SQL Server DATEDIFF()方法?
Hey, folks! In this article, we will be focusing on SQL Server DATEDIFF() function in detail. 嘿伙计! 在 ...
- SQL DATEDIFF函数
目录 描述 语法 SQL DATEDIFF使用说明 SQL DATEDIFF示例 描述 使用SQL DATEDIFF根据指定的日期部分返回两个日期之间的差异.该DATDIFF函数将此差值作为整数值返回 ...
- datediff oracle11,数据库中datediff函数用法
数据库中datediff函数怎么用 如:SELECT DATEDIFF(D,'2015-6-16','2015-6-20') 返回结果表示 两个日期间隔的天数 sql数据库中的datediff函数是什 ...
最新文章
- R语言dplyr包将dataframe中的NA值替换(replace)为0实战:所有NA值替换(replace)为0、具体列的NA值替换(replace)为0、若干列的NA值替换(replace)为0
- python type创建类_Python基于内置函数type创建新类型
- NOIP2002 均分纸牌
- 20nian5yue最热门的Python开源项目
- css之object-fit
- .Net - Lambda 表达式
- 如果Laravel 报错 file_put_contents(): failed to open stream
- C++中的wchar_t(转)
- React Native 实现FlatList的下拉刷新上拉加载
- Windows Phone 8开发环境搭建介绍
- java项目:永和大王项目_Java项目:书评
- iis 日志 post数据_云原生日志的趋势(1):logscape和logiq
- php 对接 北向数据接口 socket
- 2017-2018-1 20155320 实验三——实时系统
- Divergent series
- 黑苹果cpu架构???_自研桌面CPU,苹果对英特尔发“分手信”
- Linux服务简单优化
- SQL Server2016安装教程
- 高精度地图技术与展望
- 执行mvn clean报错Plugin org.apache.maven.plugins:maven-clean-plugin:2.5 or one of its dependencies could
热门文章
- java web 上传图片漏洞_Web安全:文件上传漏洞
- unity开发xbox手柄 驱动坑
- 爬取公众号的文章,同时处理图片不显示问题(JAVA)
- 荷塘趣事计算机作业,【《荷塘趣事》摄影图片】生态摄影_人称开哥_太平洋电脑网摄影部落...
- 消费新品周报 | AWE海尔推出无尘洗衣机;卡西欧F1红牛车队合作新款运动手表...
- linux中关于磁盘配额的描述,Linux中的磁盘配额
- 快速集成百度定位功能
- STM32遥控小车下位机及硬件连接部分(Keil MDK5平台的C++编程)
- VB中关于UBOUND和LBOUND含义
- WKWebView设置UserAgent踩坑