错误了,日期 型数据的比较

bboos 2005-03-23 12:05:10
1,
declare @Fdate as datetime,@Ldate as datetim
slect * from 表 where 日期 between @Fdate and @Ldate
--有时候就出错,查询不全,不知道怎么回事

2,
输入多条 日期型数据
日期
2005-2-3 01:00
2005-2-3 15:20
2005-2-3 20:00
2005-2-4 18:00
2005-2-4 20:00
----------------------
要查询结果:
2005-2-3
2005-2-4
这个语句怎么写 才比较好呢?
3,
日期型数据处理上老是有点问题,尽管一直用 cast转换。不知道大家是怎么解决的。

...全文
84 点赞 收藏 5
写回复
5 条回复
yunshiyu 2005年03月24日
1。查询不全是因为你条件里的 ‘日期’和@Fdate and @Ldate 的格式不一样,前面是‘2005-3-3’
后面的就带时间了‘2005-3-3 19:20’,在判断的时候把@Fdate and @Ldate 的格式后面的时间去掉
2。select distinct(...)from ...也是把日期后面的时间去掉
3。去SQL帮助上查‘日期, 函数’
回复 点赞
xluzhong 2005年03月23日
3,
日期型数据处理上老是有点问题,尽管一直用 cast转换。不知道大家是怎么解决的。

-----
用convert,datediff,dateadd,datepart等等
回复 点赞
xluzhong 2005年03月23日
2,
输入多条 日期型数据
日期
2005-2-3 01:00
2005-2-3 15:20
2005-2-3 20:00
2005-2-4 18:00
2005-2-4 20:00
----------------------
要查询结果:
2005-2-3
2005-2-4
这个语句怎么写 才比较好呢?

select distinct(convert(char(10),日期,120)) from tablename
回复 点赞
xluzhong 2005年03月23日
1,
declare @Fdate as datetime,@Ldate as datetim
slect * from 表 where 日期 between @Fdate and @Ldate
--有时候就出错,查询不全,不知道怎么回事
-----
declare @Fdate as datetime,@Ldate as datetim
slect * from 表 where 日期 between @Fdate and dateadd(d,1,@Ldate)
回复 点赞
sensorcsdn 2005年03月23日
declare @Fdate as datetime,@Ldate as datetim
slect * from 表 where
convert(char(10),日期,120) between convert(char(10),@fdate,120) and convert(char(10),@ldate,120)
回复 点赞
发动态
发帖子
应用实例
创建于2007-09-28

1.1w+

社区成员

6.8w+

社区内容

MS-SQL Server 应用实例
社区公告
暂无公告