【经验分享】查询xxxx年xx月 ~ xxxx年xx月间的数据方法

    最近碰到需要查询一个时间段内的数据的问题。想到用between ...and...语句,但是,数据表中年和月都是单独的字段,不方便直接写语句。后来找到一个方法:

select *
from MonthlyEnterpriseMonitor
where cast([Year] AS nvarchar(10))+'-0'+cast([Month] AS nvarchar(10))+'-01 00:00:00'
between '2009-01-01 00:00:00' and '2009-02-28 23:59:59'

------------------------------------------------------------------------------

CAST 和 CONVERT 提供相似的功能。

将某种数据类型的表达式显式转换为另一种数据类型。

语法
使用 CAST:

CAST ( expression AS data_type )

使用 CONVERT:

CONVERT (data_type[(length)], expression [, style])

参数
expression

是任何有效的 Microsoft? SQL Server? 表达式。

data_type

目标系统所提供的数据类型,包括 bigint 和 sql_variant。不能使用用户定义的数据类型

length

nchar、nvarchar、char、varchar、binary 或 varbinary 数据类型的可选参数。

style

日期格式样式,借以将 datetime 或 smalldatetime 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型);或者字符串格式样式,借以将 float、real、money 或 smallmoney 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型)。

SQL Server 支持使用科威特算法的阿拉伯样式中的数据格式。

原文地址:https://www.cnblogs.com/a311300/p/1404673.html