`

SQL Server:从char 数据类型到datetime 数据类型的转换导致datetime 值越界

阅读更多

昨天写一SQL,查询某个时间段的数据,具体的说不清楚,看SQL吧,主要看where条件: 

select top 10 * from table1
where 
field38 between ''+cast(year(field38) as varchar(50))+'-'+cast((month(field38)-1) as varchar(50))+'-10 00:00:00' 
and ''+cast(year(field38) as varchar(50))+'-'+cast(month(field38) as varchar(50))+'-9 59:59:59'

 这么执行下之后报错:

从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界

 

去百度,网上大部分说是字符串类型或长度设置的有问题,我这field38是datetime类型,默认的位数就有yyyy-mm-dd hh:mm:ss.000 23位了,我这拼接的撑死19位,不可能有问题。

 

最后查来查去,发现时最后的拼接问题,即: 59:59:59。后面两个59是说的59分,59秒,但是一天没有59小时,24小时制最多也就23,即:23:59:59。照着这个改成如下情况:

select top 10 * from table1
where 
field38 between ''+cast(year(field38) as varchar(50))+'-'+cast((month(field38)-1) as varchar(50))+'-10 00:00:00' 
and ''+cast(year(field38) as varchar(50))+'-'+cast(month(field38) as varchar(50))+'-9 23:59:59'

 这么执行下果然不再报错。

 

所以在出现莫名其妙或出现不可能出现的问题时,“先检查下SQL语句是否写错”有时候还是条捷径!

 

分享到:
评论

相关推荐

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

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

    sqlserver中datetime属性巧用

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

    时间字符串转换成日期对象datetime的方法

    您可能感兴趣的文章:sql语句中如何将datetime格式的日期转换为yy-mm-dd格式将WMI中的DateTime类型转换成VBS时间的函数代码LINQ字符串向datetime 转换时失败的处理方法Sql中将datetime转换成字符串的

    SQL的datetime类型数据转换为字符串格式大全

    SQL的datetime类型数据转换为字符串格式大全 2007-10-10 11:11:43 2007/10/10 SELECT convert(char(20),getdate(),120) as TIME_1,convert(char(20),getdate(),111) as TIME_2 将字符串20100426103059转换为...

    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 ...

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

    主要介绍SQL_SERVER日期函数 datetime的使用 以及c#中的datetime使用

    Microsoft SQL Server 2005技术内幕: T-SQ程序设计.pdf

    本书涵盖了T-SQL程序设计的方方面面,如基于集合的编程技术、日期和时间相关的XML和CLR数据类型的使用、临时对象、T-SQL和CLR用户自定义函数、存储过程、触发器、事务和新的错误处理结构、应用并发模型支持并发用户...

    Microsoft SQL Server 2005 Express Edition SP3

    未及时包括在本自述文件中的任何有关 SQL Server 2005 和 SQL Server Express 的信息都将发布到 Microsoft 知识库文章 907284 中。 [顶部] 3.0 安装问题 本部分详细介绍此版本中的安装问题。 3.1 现有的 SQL ...

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

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

    c#往sqlserver2000数据库中插入时间型数据的空值

    C#往sqlserver数据库中插入时间型数据时,直接插入null,数据库中会变成1900-1-1的数据,这个demo使用了参数的方法进行插入,很简单

    SQL SERVER的数据类型

    1.SQL SERVER的数据类型  数据类弄是数据的一种属性,表示数据所表示信息的类型。任何一种计算机语言都定义了自己的数据类型。当然,不同的程序语言都具有不同的特点,所定义的数据类型的各类和名称都或多或少有些...

    将sql server数据表生成sql文件,可用查询分析器直接运行

    可将sql server 数据表生成sql语句 语句中包括建表部分和数据部分 常用作sql server 数据导入 例如:--表 buyi_product_comment 的结构 CREATE TABLE buyi_product_comment(proId varchar(50) not null,companyid ...

    SQLServer大数据库教案设计.doc

    字符数据的类型:Char,Varchar和Text 数值型数据类型:bigint,int,smallint,tinyint,decimal,numeric,flo at和real 货币型数据类型:Money和Smallmoney 时间/日期数据类型: Datetime 和 Smalldatetime ...

    SQL袖珍参考手册(第3版)

    中文名: SQL袖珍参考手册(第3版,涵盖DB2,MySQL,Oracle,PostgreSQL,SQL Server) 原名: SQL Pocket Guide: A Guide to SQL Usage 作者: Jonathan Gennick 资源格式: PDF 版本: 英文文字版/更新源代码 出版社: O'...

    用Python将Excel数据导入到SQL Server的例子

    因为近期需要将excel导入到SQL Server,但是使用的是其他语言,闲来无事就尝试着用python进行导入,速度还是挺快的,1w多条数据,也只用了1s多,代码也比较简单,就不多解释了。 用到的库有xlrd(用来处理excel),...

    SQL Server 2000范例代码

    -- 创建birthday 用户定义数据类型,它使用了 datetime 基本数据类型,允许 NULL USE sample EXEC sp_addtype birthday, datetime, 'NULL' GO -- 在数据表定义时使用birthday 用户定义数据类型 CREATE TABLE 特殊...

    31-SqlServer-datetime-Code.zip

    SqlServer数据类型“datetime”存在准确性和舍入问题,并且已被没有此类问题的“datatime2”数据类型取代。但是,“datetime”仍然存在于许多旧数据库中。我们将展示.NET Entity Framework环境中的这些问题如何导致...

    SQLServer日期时间格式转换.txt

    SQLServer 数据库语句:日期/时间格式转换语句示例。

    SQL的datetime类型数据转换为字符串格式大全.doc

    SQL的datetime类型数据转换为字符串格式大全.doc

    SQL Server使用convert对datetime日期数据进行获取

    此文档中详细记载了,SQL Server使用convert对datetime日期数据进行获取,希望可以帮到下载的朋友们!

Global site tag (gtag.js) - Google Analytics