日期:2014-05-18  浏览次数:20442 次

MSSQL 中{d '2011-10-31' }怎么理解
sql 语句中 select * from mzypmxk_f where mzypmxk_f.rq >= {d '2011-10-31' } ;{d '2011-10-31' } 这个怎么理解,这是什么类型?datetime?char?int?求指教,谢谢
这种方式哪里有详细介绍吗?因为这个我就将{d '2011-10-31' } 这个插入到 列类型为int和char和datetime型的都能插入的,所以我才不确定这到底是什么。。。求资料,求介绍~·

------解决方案--------------------
SQL code

declare @m table (col datetime)
insert into @m
select '2011-10-01' union all
select '2011-11-01' union all
select '2011-12-01'

select * from @m where col >= {d'2011-10-31'} 

/*
col
-----------------------
2011-11-01 00:00:00.000
2011-12-01 00:00:00.000
*/


DECLARE @t DATETIME SET @t=GETDATE()

SELECT CONVERT(VARCHAR(10),@t,120)
SELECT CAST(@t AS int)
/*
2011-11-03

40849
*/

------解决方案--------------------
探讨
找到答案了!!!
这是将字符串'2011-10-31' 转成日期\时间类型,而且规定了字符串格式只能为:yyyy-mm-dd.查询SQL帮助文档

ODBC API 定义了转义序列来表示日期和时间值,ODBC 称之为时间戳数据。用于 SQL Server 的 Microsoft OLE DB 提供程序所支持的 OLE DB 语言定义 (DBGUID-SQL) 也支持这种 ODBC 时间戳格式……

------解决方案--------------------
直接用就行了
SQL code
select * from mzypmxk_f where mzypmxk_f.rq >='2011-10-31'

------解决方案--------------------
http://msdn.microsoft.com/en-us/library/ms180878.aspx
官方给出的列表介绍得很详细。