首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

01JAN 02FEB 03OCT范围计算有关问题急

2012-01-26 
01JAN02FEB 03OCT范围计算问题急!数据IDFDATE101JUN202FEB321JUN403JAN525NOV630DEC。。。。要求查询出,01JAN-

01JAN 02FEB 03OCT范围计算问题急!
数据
ID     FDATE
1       01JUN
2       02FEB
3       21JUN
4       03JAN
5       25NOV
6       30DEC
。。。。
要求查询出,01JAN-0JUN   的数据怎么做比较好!

[解决办法]
cREATE TABLE MT(
ID INT , FDATE NVARCHAR(20))
INSERT INTO MT SELECT 1, '01JUN '
UNION SELECT 2, '02FEB '
UNION SELECT 3, '21JUN '
UNION SELECT 4, '03JAN '
UNION SELECT 5, '25NOV '
UNION SELECT 6, '30DEC '


declare @s nvarchar(20)
set @S= '01JAN '
declare @e nvarchar(20)
set @e= '01JUN '


SELECT ID ,FDATE FROM MT
where cONVERT(datetime, stuff(FDATE,3,0, ' ')+ ' 1900 ') between
cONVERT(datetime, stuff(@S,3,0, ' ')+ ' 1900 ') and cONVERT(datetime, stuff(@e,3,0, ' ')+ ' 1900 ')

ID FDATE
----------- --------------------
1 01JUN
2 02FEB
4 03JAN

(3 row(s) affected)


[解决办法]
select cONVERT(datetime, stuff( '21JUN ',3,0, ' ')+ ' 1900 ')

从字符串转换为 datetime 时发生语法错误。

--为什么我这里出现语法错误的呢?

看了联机帮助
SQL Server 可以识别以下列格式括在单引号 ( ') 中的日期和时间:

字母日期格式(例如, 'April 15, 1998 ')
数字日期格式(例如, '4/15/1998 '、 'April 15,1998 ')
未分隔的字符串格式(例如 '19981207 '、 'December 12, 1998 ')
但是我用 'April 15,1998 '也会出错..

热点排行