最近碰到需要查询一个时间段内的数据的问题。想到用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 支持使用科威特算法的阿拉伯样式中的数据格式。