`

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与C中数据类型的对应关系.pdf

    这个函数可以作为工具类的一部分,用于自动化处理SQL Server数据类型到C#数据类型的转换,提高开发效率。在实际项目中,开发者可能需要根据具体需求扩展此函数,例如添加对更多SQL Server特有数据类型的处理,或者...

    SQL SERVER的数据类型自定义

    ### SQL Server 数据类型详解与自定义数据类型创建 在数据库设计与管理中,理解并熟练掌握数据类型至关重要,因为它们直接影响到数据存储的效率、安全性和查询性能。SQL Server 提供了丰富的内置数据类型,同时也...

    SqlServer数据库的数据类型

    ### SqlServer数据库的数据类型详解 数据类型在编程与数据库管理中扮演着至关重要的角色,它不仅定义了数据的存储方式,还决定了数据可以执行的操作。SQL Server作为一种广泛使用的数据库管理系统,提供了丰富的...

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

    在 Java 中,对数据库的操作需要通过 JDBC(Java Database Connectivity)来实现,而在 JDBC 中,需要将 SQL Server 的数据类型映射到 Java 中的数据类型。下面将详细介绍 SQL Server 数据库类型对应 Java 中的数据...

    sql server 和oracle 中数据类型的区别

    本文将深入探讨SQL Server与Oracle中的数据类型区别,并通过具体的例子来说明这两种系统之间的转换方法。 ### SQL Server 数据类型 SQL Server 是微软开发的一款关系型数据库管理系统,它支持多种数据类型,可以...

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

    在 C# 中,DateTime 是一个基本的数据类型,用于表示日期和时间。C# 提供了多种方法来操作 DateTime 类型的数据。 1. DateTime.Now: DateTime.Now 属性用于获取当前日期和时间。 ```csharp DateTime now = DateTime...

    sqlserver数据类型详解

    ### SQL Server 数据类型详解 #### 一、概述 在 SQL Server 中,数据类型是指定用于存储数据的格式。正确选择数据类型对于确保数据完整性、提高性能以及减少存储空间至关重要。本文将详细介绍 SQL Server 中常见的...

    SQL数据类型与C#数据类型转换

    ### SQL数据类型与C#数据类型的转换 在开发过程中,我们经常会遇到需要将数据库中的数据类型映射到编程语言中的情况。特别是在使用SQL Server作为后端数据库与C#进行交互时,了解这两种环境下的数据类型及其对应...

    SQL SERVER 数据类型详解

    在SQL Server中,数据类型是定义列和变量的基础,它们决定了...了解并正确选择这些数据类型对于创建高效且精确的SQL Server数据库至关重要,因为不同的数据类型会直接影响到存储需求、性能以及数据的准确性和一致性。

    SQLSERVER与C#的数据类型对应表[借鉴].pdf

    本篇文章将详细解析SQL Server与C#之间数据类型的对应表,以便于开发者更高效地进行数据交互。 首先,SQL Server是微软推出的一款关系型数据库管理系统,广泛应用于企业级数据存储和管理。C#,则是.NET框架下的编程...

    sqlserver-oracle 数据类型对照

    本文将详细比较SQL Server和Oracle数据库之间的数据类型对应以及常用函数的转换。 首先,我们来看SQL Server和Oracle的数据类型对照: 1. **数值类型**: - `bigint`在SQL Server中对应Oracle的`NUMBER(19)`,...

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

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

    sql server 数据类型

    SQL Server 2000 提供了三种基本的字符数据类型:char(n),varchar(n),和text。char(n)是固定长度的字符数据类型,适合存储长度固定的字符串,例如,电话号码或邮政编码。它会占用n个字符的空间,不足的部分用空格...

    SQLServer2008中的数据类型总结.doc

    在SQL Server 2008中,数据类型是数据库设计的核心元素之一,它们决定了存储数据的格式、范围和精度。本文将深入探讨SQL Server 2008中的各种数据类型,帮助你理解如何根据需求选择合适的数据类型。 首先,我们可以...

    SQL Server 2005 数据类型和.Net数据类型的对应关系.doc

    SQL Server 2005 和 .NET Framework 之间的数据类型对应关系是开发数据库应用程序时的重要基础知识。理解这些对应关系有助于确保在SQL Server中存储的数据能够正确地被.NET应用程序读取和处理。以下是对两种数据类型...

    SQL SERVER数据类型表

    在SQL Server中,数据类型是定义数据库中存储的数据类型的规范,它们决定了数据的性质和范围。理解SQL Server的数据类型对于数据库设计和开发至关重要。本文将深入探讨SQL Server中常用的数据类型,帮助您更好地掌握...

    Microsoft Access数据类型与SQL Server数据类型的区别

    ### Microsoft Access 数据类型与 SQL Server 数据类型的主要区别 ...在从 Access 迁移到 SQL Server 时,需要注意这些差异,并根据实际情况调整数据类型和函数的使用,以确保数据迁移的顺利进行。

    SQL Server 2000数据类型

    SQL Server 2000 提供了三种基本的字符数据类型:char(n), varchar(n), 和 text。 1. **char(n)** 是一种固定长度的字符数据类型,它能存储从1到8000个字符。无论实际存储的数据长度如何,都会在存储空间中占据指定...

    SQL SERVER数据类型详解

    在SQL Server中,数据类型是定义列、变量和其他数据库对象属性的关键部分。它们决定了可以存储在这些对象中的数据种类和格式。SQL Server提供了多种数据类型,以满足不同类型的存储需求。下面将对这些数据类型进行...

    SQL Server 数据类型总结

    除了上述基本类型外,SQL Server还提供了一些特殊数据类型,如`bit`用于存储布尔值(0或1),`uniqueidentifier`用于存储GUID,以及`xml`类型用于存储XML文档等。 ### 结论 掌握SQL Server中的数据类型对于有效地...

Global site tag (gtag.js) - Google Analytics